题解BFS
2025-07-13 22:15:21
发布于:新疆
14阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int n,k;
int a[100005];
int main(){
cin>>n>>k;
for(int i=1;i<=100000;i++){
a[i]=-1;
}
a[n]=0;
queue <int> que;
que.push(n);
while(que.size()){
int r=que.front();
que.pop();
if(r==k){
cout<<a[k];
break;
}
if(r>=1&&a[r-1]==-1){
a[r-1]=a[r]+1;
que.push(r-1);
}
if(r+1<=100000&&a[r+1]==-1){
a[r+1]=a[r]+1;
que.push(r+1);
}
if(2*r<=100000&&a[2*r]==-1){
a[2*r]=a[r]+1;
que.push(2*r);
}
}
return 0;
}
这里空空如也
有帮助,赞一个