多啦a梦的时光机 poj

简单的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;
}



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部