当前位置:首页 > 编程笔记 > 正文
已解决

1400*B. Two Buttons(BFS)

来自网友在路上 167867提问 提问时间:2023-09-27 20:18:07阅读次数: 67

最佳答案 问答题库678位专家为你答疑解惑

解析:

        每次一个点有两种情况,-1 和 *2 两种情况,直接 BFS 即可。

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int n,m,vis[N],cnt[N];
void bfs(){queue<int>q;vis[n]=1;q.push(n);while(q.size()){auto t=q.front();q.pop();if(t==m){cout<<cnt[t];return;}if(t-1>0&&!vis[t-1]){vis[t-1]=1;cnt[t-1]=cnt[t]+1;q.push(t-1);}if(t<=m&&!vis[t*2]){vis[t*2]=1;cnt[t*2]=cnt[t]+1;q.push(t*2);}}
}
signed main(){cin>>n>>m;bfs();return 0;
} 
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"1400*B. Two Buttons(BFS)":http://eshow365.cn/6-14844-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!