家人们 不会看我的
2025-09-20 10:02:38
发布于:广东
0阅读
0回复
0点赞
#include <iostream>
#include <queue>
using namespace std;
int n,k,dp[10000005];
bool vis[100005];
int main() {
queue<int> p;
cin>>n>>k;
p.push(n);
dp[n] = 0;
vis[n] = true;
while(p.size()){
int r = p.front();
p.pop();
if(k == r){
cout<<dp[r]<<endl;
break;
}
if(vis[r-1] == 0 && r-1 >= 0){
p.push(r-1);
dp[r-1] = dp[r]+1;
vis[r-1] = 1;
}
if(vis[r+1] == 0 && r-1 <= 100000){
p.push(r+1);
dp[r+1] = dp[r]+1;
vis[r+1] = 1;
}
if(vis[2*r] == 0 && 2*r <= 100000){
p.push(2*r);
dp[2*r] = dp[r]+1;
vis[r*1] = 1;
}
}
return 0;
}
这里空空如也
有帮助,赞一个