求助!
查看原帖
求助!
1304032
Lwx112412楼主2025/2/7 10:41
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int k[205];
//bool vis[205];
int f[205];
//bool check(int x){
//	if((!(vis[x]))&&(x<=n)&&(x>=1)){
//		return 1;
//	}
//	return 0;
//}
int bfs(){
	queue<int>q;
	q.push(n);
	f[n]=0;
	while(!q.empty()){
		int u=q.front();
		q.pop();
		if(u==m){
			return f[u];
		}
		int s1=u*2;
		int s2=u-1;
		if((s1>=0)&&(s1<=10005)&&(f[s1]==-1)){
			q.push(s1);
//			vis[s1]=1;
			f[s1]=f[u]+1;
		}
		if((s2>=0)&&(s2<=10005)&&(f[s2]==-1)){
			q.push(s2);
//			vis[s2]=1;
			f[s2]=f[u]+1;
		}
//		if((s1==b)||(s2==b)){
//			cout<<f[b];
//			return;
//		}
	}
//	cout<<"-1";
}
signed main(){
	memset(f,-1,sizeof(f));
	cin>>n>>m;
	cout<<bfs();
	return 0;
}
2025/2/7 10:41
加载中...