AC
2025-10-05 10:47:35
发布于:浙江
0阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n,k,d[2000005];
queue<int>q;
int main(){
cin>>n>>k;
q.push(n);
d[n]=1;
while(!q.empty()){
int x=q.front();
q.pop();
if(x==k){
cout<<d[x]-1;
break;
}
if(x-1>=1&&d[x-1]==0){
d[x-1]=d[x]+1;
q.push(x-1);
}
if(x+1<=2000000&&d[x+1]==0){
d[x+1]=d[x]+1;
q.push(x+1);
}
if(x*2<=2000000&&d[x*2]==0){
d[x*2]=d[x]+1;
q.push(x*2);
}
}
return 0;
}
这里空空如也







有帮助,赞一个