为什么满江红
查看原帖
为什么满江红
1259598
Linkaifan1227楼主2024/4/20 19:34
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
const int maxn=100005;
int a,b,vis[maxn],step[maxn];
void bfs()
{
	queue<int> q;
	q.push(a);
	vis[a]=1;
	while(!q.empty())
	{
		int u=q.front();
		q.pop();
		if(u==b) return ;
		if(u+1<=b&&vis[u+1]==0)
		{
			q.push(u+1);
			vis[u+1]=1;
			step[u+1]=step[u]+1; 
		}
		if(u*2<=b&&vis[u*2]==0)
		{
			q.push(u*2);
			vis[u*2]=1;
			step[u*2]=step[u]+1; 
		}
		if(u-1<=b&&vis[u-1]==0)
		{
			q.push(u-1);
			vis[u-1]=1;
			step[u-1]=step[u]+1; 
		}
	}
}
int main()
{
	int k;
	cin>>k>>a>>b;
	for(int i=0;i<k;i++)
	{
		bfs();
		cout<<step[b]<<endl;
	}
	return 0;
}
2024/4/20 19:34
加载中...