全部RE ,求助
查看原帖
全部RE ,求助
113523
Alpharc楼主2021/7/10 12:13

代码如下

#include<bits/stdc++.h>
#define MAXN_ 100010
using namespace std;

int t;
inline int Bfs(int x,int y)
{
	queue<int> Q;
	bool F[MAXN_];
	int Step[MAXN_];
	
	memset(F,0,sizeof(F));
    memset(Step,0,sizeof(Step));
    
	Q.push(x),F[x]=true,Step[x]=0;
	
	while(!Q.empty())
	{
		int tempLocation=Q.front();
		Q.pop();
		
		for(int i=1;i<=3;i++)
		{
			int tempLocationc=tempLocation;
			if(i==1)	tempLocationc+=1;
			if(i==2)	tempLocationc-=1;
			if(i==3)	tempLocationc*=2;
			
			if(!F[tempLocationc]&&tempLocationc>0&&tempLocationc<=MAXN_-10)
			{
				Q.push(tempLocationc);
				F[tempLocationc]=true;
				Step[tempLocationc]=Step[tempLocation]+1;
			}
		}
	}
	return Step[y];
}

int main()
{
	
	//freopen("a.in","r",stdin);
	scanf("%d",&t);
	int cx,cy;
	while(t--)
	{
		scanf("%d %d",&cx,&cy);
		printf("%d\n",Bfs(cx,cy));
	}
	return 0;
}

/*
n>=0
n==y



f[n]=f[n-1]+1;
f[n]=f[n-1]-1;
f[n]=f[n-1]*2;
*/
2021/7/10 12:13
加载中...