大佬能帮忙看看吗 为啥样例都过了,WA了 我感觉没啥问题啊。。
#include <bits/stdc++.h>
using namespace std;
int a, b, ans;
queue<int> q;
int step[3] = {1, 5, 10};
int dp[55];
void bfs()
{
if (a == b)
{
cout << 0 << endl;
return;
}
for (int i = 0; i < 55; i++)
{
dp[i] = 2147483647;
}
dp[a] = 0;
q.push(a);
while (!q.empty())
{
int now = q.front();
q.pop();
if (now > 40)
continue;
if (now < b)
{
for (int i = 0; i < 3; i++)
{
int tmp = now + step[i];
if (dp[tmp] > dp[now] + 1)
{
q.push(tmp);
dp[tmp] = dp[now] + 1;
}
}
}
else
{
for (int i = 0; i < 3; i++)
{
int tmp = now - step[i];
if (dp[tmp] > dp[now] + 1)
{
q.push(tmp);
dp[tmp] = dp[now] + 1;
}
}
}
}
cout << dp[b] << endl;
}
int main()
{
cin >> a >> b;
bfs();
return 0;
}