MLE
2024-06-08 10:04:00
发布于:上海
33阅读
0回复
0点赞
#include<iostream>
#include<queue>
using namespace std;
using ll = long long;
ll n,k;
void bfs(){
queue<ll>q,t;
q.push(n);t.push(0);
while(!q.empty()){
if(q.front()-1 >= 0){
q.push(q.front()-1);t.push(t.front()+1);
if(q.front()-1==k)cout << t.front()+1,exit(0);
}
if(q.front()+1 <= 100000){
q.push(q.front()+1);t.push(t.front()+1);
if(q.front()+1==k)cout << t.front()+1,exit(0);
}
if(q.front()*2 <= 100000){
q.push(q.front()*2);t.push(t.front()*2);
if(q.front()*2==k)cout << t.front()+1,exit(0);
}
q.pop();
}
return;
}
int main(){
cin >> n >> k;
bfs();
return 0;
}
全部评论 2
牢底vis被你吞了
2024-06-08 来自 广东
0重复的怎么办
2024-06-08 来自 广东
0
2024-06-08 来自 上海
0
有帮助,赞一个