man
2024-10-04 21:20:42
发布于:江苏
3阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
bool s[1000005];
int min[1000005];
queue<int>q;
q.push(n);
s[n]=1;
min[n]=0;
while(!q.empty()){
int f=q.front();
q.pop();
if(f==k){
break;
}
if(!s[f-1]&&f>=1){
s[f-1]=1;
q.push(f-1);
min[f-1]=min[f]+1;
}
if(!s[f+1]&&f<=100000){
s[f+1]=1;
q.push(f+1);
min[f+1]=min[f]+1;
}
if(!s[f*2]&&f*2<=100000){
s[f*2]=1;
q.push(f*2);
min[f*2]=min[f]+1;
}
}
cout<<min[k];
return 0;
}
这里空空如也
有帮助,赞一个