T-T
2024-07-28 14:23:46
发布于:上海
6阅读
0回复
0点赞
#include<iostream>
#include<queue>
using namespace std;
int n,a[100010],k;
int main()
{
cin >> n >> k;
for(int i = 1;i <= 100000;i++){
a[i] = -1;
}
a[n] = 0;
queue<int> q;
q.push(n);
while(q.size())
{
int r = q.front();q.pop();
if(r == k){
cout << a[k];break;
}
if(r >= 1 && a[r - 1] == -1){
a[r - 1] = a[r] + 1;
q.push(r - 1);
}
if(r <= 100000 && a[r + 1] == -1){
a[r + 1] = a[r] + 1;
q.push(r + 1);
}
if(2 * r <= 100000 && a[2 * r] == -1){
a[2 * r] = a[r] + 1;
q.push(2 * r);
}
}
return 0;
}
这里空空如也
有帮助,赞一个