题解
2024-03-17 11:55:46
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
int n,k,arr[20000005];
int main(){
cin >> n >> k;
queue <int> q;
q.push(n);
arr[n] = 1;
while(!q.empty()){
int x = q.front();
q.pop();
if(x == k){
cout<< arr[k] - 1;
break;
}
if(x - 1 >= 0 && arr[x - 1] == 0){
arr[x - 1]= arr[x] + 1;
q.push(x - 1);
}
if(x + 1 <= 100000 && arr[x + 1] == 0){
arr[x+1] = arr[x]+1;
q.push(x+1);
}
if(x * 2 <= 100000 && arr[x*2] == 0){
arr[2 * x] = arr[x] + 1;
q.push(x * 2);
}
}
return 0;
}
全部评论 1
az,这个题目是内部的题目。没加入团队看不到。SSD
2024-03-17 来自
0好像是抓住那头牛qwq
2024-03-17 来自 广东
0是的
2024-03-22 来自 浙江
0
有帮助,赞一个