题解
2025-08-04 23:31:03
发布于:江苏
0阅读
0回复
0点赞
#include<iostream>
#include<queue>
using namespace std;
int n,k,a[200010];
queue<int>q;
int main(){
cin>>n>>k;
q.push(n);
a[n]=0;
while(q.size()!=0){
int r=q.front();
q.pop();
if(r==k){
cout<<a[k];
break;
}else{
if(a[r-1]==0&&r>0){
a[r-1]=a[r]+1;
q.push(r-1);
}
if(a[r+1]==0&&(r+1)<=100000){
a[r+1]=a[r]+1;
q.push(r+1);
}
if(a[r*2]==0&&(r*2)<=100000){
a[r*2]=a[r]+1;
q.push(r*2);
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个