多啦a梦的时光机 poj

简单的bfs #include #include #include #include #include #include #include #in

简单的bfs

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=1000001;
bool visited[maxn];
struct dola{int x;int steps;dola(int x_,int steps_):x(x_),steps(steps_){};
};
int main(){int N;cin>>N;while(N--){memset(visited,0,sizeof(visited));int begin,end;queue q;cin>>begin>>end;visited[begin]=1;q.push(dola(begin,0));while(!q.empty()){dola temp=q.front();if(temp.x==end){cout<<2*temp.steps<=0 && !visited[temp.x-1] ){q.push(dola(temp.x-1,temp.steps+1));visited[temp.x-1]=1;}if(temp.x+1<=maxn && !visited[temp.x+1] ){q.push(dola(temp.x+1,temp.steps+1));visited[temp.x+1]=1;}if(temp.x*2<=maxn && !visited[temp.x*2] ){q.push(dola(temp.x*2,temp.steps+1));visited[temp.x*2]=1;}if(temp.x%2==0 && temp.x/2>=0 && !visited[temp.x/2]){q.push(dola(temp.x/2,temp.steps+1));visited[temp.x/2]=1;}q.pop();}while(!q.empty()){q.pop();}}return 0;
}