求助!
查看原帖
求助!
970557
liuzhenyu70302楼主2024/2/27 16:56
#include<bits/stdc++.h>
#define N 100000
using namespace std;
int n,k;
bool v[N+10];
queue<int> q,qu,q1;
int main(){
	int t;
	cin>>t;
	while(t--){
		int ans=0;
		cin>>n>>k;
		q.push(n);
		qu.push(ans);
		q=q1;qu=q1;
		memset(v,0,sizeof(v));
		while(q.size()&&qu.size()){
			int a=q.front();
			int ans=qu.front();
			if(a==k)break;
			q.pop();qu.pop();
			if(a+1<=k&&!v[a+1]){
				q.push(a+1);
				qu.push(++ans);
				v[a+1]=1;
			}
			if(a-1>=0&&!v[a-1]){
				q.push(a-1);
				qu.push(++ans);
				v[a-1]=1;
			}
			if(a*2<=N&&!v[a*2]){
				q.push(a*2);
				qu.push(++ans);
//				v[a*2]=1;
			}
		}
		cout<<ans<<"\n"; 
	}
	return 0;
}
2024/2/27 16:56
加载中...