求点赞!
2025-11-23 17:22:14
发布于:北京
6阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int vis[N];
int n,k;
queue<int> q;
int main(){
cin>>n>>k;
vis[n]=1;
q.push(n);
while(q.size()>0){
int u=q.front();
q.pop();
int tu;
tu=u+1;
if(tu>=0&&tu<=N&&vis[tu]==0){
vis[tu]=vis[u]+1;
q.push(tu);
}
tu=u-1;
if(tu>=0&&tu<=N&&vis[tu]==0){
vis[tu]=vis[u]+1;
q.push(tu);
}
tu=u*2;
if(tu>=0&&tu<=N&&vis[tu]==0){
vis[tu]=vis[u]+1;
q.push(tu);
}
}
cout<<vis[k]-1<<endl;
return 0;
}
全部评论 1
题解
2025-11-23 来自 北京
1这是最优解
2025-11-23 来自 北京
1







有帮助,赞一个