不需要那么麻烦
2024-10-04 21:30:22
发布于:上海
7阅读
0回复
0点赞
#include <iostream>
#include <queue>
using namespace std;
bool vis[100010];
queue<long long> q;
long long d[100010];
long long a[3] = {-1 , 1 };
int main ()
{
long long n , k , t , x;
cin >> n >> k;
q.push (n);
vis[n] = 1;
while (!q.empty())
{
t = q.front ();
q.pop();
if (t == k)
{
cout << d[t] << endl;
return 0;
}
a[2] = t;
for (long long i = 0 ; i < 3 ; i ++)
{
x = t + a[i];
if (x >=0 && x <= 100000 && !vis[x])
{
d[x] = d[t] + 1;
vis[x] = 1;
q.push (x);
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个