求助(玄关)
查看原帖
求助(玄关)
1032960
Danny_chan楼主2024/5/1 21:39

30分,代码:

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
int n;
int x,y;
int a[1000010];
queue<int>q;
int bfs(int x1,int y1){
	q.push(x);
	while(!q.empty()){
		auto t=q.front();
		q.pop();
		for(int i=1;i<=3;i++){
			int x2;
			if(i==1){
				 x2=t+1;
			}
			if(i==2){
				 x2=t-1;
			}
			if(i==3){
				 x2=2*t;
			}
			if(x2<=0||x2>y) continue;
			if(a[x2]>=0) continue;
			a[x2]=a[t]+1;
			if(x2==y){
				return a[x2];
			}
			q.push(x2);
		}
	}
}
int main() {
	cin>>n;
	while(n--){
		memset(a,-1,sizeof a);
		while(!q.empty()) q.pop();
		cin>>x>>y;
		a[x]=0;
		cout<<bfs(x,y)<<endl;
	}
	return 0;
}
2024/5/1 21:39
加载中...