题解
2024-06-08 10:27:35
发布于:广东
16阅读
0回复
0点赞
#include<bits/stdc++.h>
#include<queue>
using namespace std;
long long n,k,r;
long long a[1000005];
int main(){
queue<int> q;
cin>>n>>k;
for(int i=1;i<=100000;i++){
a[i]=-1;
}
a[n]=0;
q.push(n);
while(!q.empty()){
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(r<=100000 && a[r*2]==-1){
a[r*2]=a[r]+1;
q.push(r*2);
}
}
return 0;
}
这里空空如也
有帮助,赞一个