RE求助
查看原帖
RE求助
216352
SUPERLWR楼主2021/8/18 16:52
#include<bits/stdc++.h>
using namespace std;
queue<int> q;
int t,x,y,visit[2000001]={0},step[2000001];
int main()
{
	cin>>t;
	for(int z=1;z<=t;z++)
	{
		cin>>x>>y;
		q.push(x);
		visit[x]=1;
		step[x]=0;
		int now;
		while(!q.empty())
		{
			now=q.front();
			q.pop();
			if(now==y)
				break;
			if(!visit[now+1])
			{
				step[now+1]=step[now]+1;
				visit[now+1]=1;
				q.push(now+1);
			}
				
			if(!visit[now-1])
			{
				step[now-1]=step[now]+1;
				visit[now-1]=1;
				q.push(now-1);
			}
				
			if(!visit[now*2])
			{
				step[now*2]=step[now]+1;
				visit[now*2]=1;
				q.push(now*2);
			}
			
		}
		cout<<step[now]<<"\n";
		for(int i=0;i<=400000;i++)
			visit[i]=0;
	}
	return 0;
}

qwq

2021/8/18 16:52
加载中...