1400*B. Two Buttons(BFS)

1400*B. Two Buttons(BFS)_第1张图片

解析:

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

#include
using namespace std;
const int N=2e5+5;
int n,m,vis[N],cnt[N];
void bfs(){
	queueq;
	vis[n]=1;
	q.push(n);
	while(q.size()){
		auto t=q.front();
		q.pop();
		if(t==m){
			cout<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;
} 

你可能感兴趣的:(codeforces,宽度优先,算法,c++,数据结构,开发语言,c语言)