HDU-2717-Catch That Cow

来源:互联网 发布:爱淘宝退款红包会退吗 编辑:程序博客网 时间:2024/05/22 11:00

HDU-2717-Catch That Cow

http://acm.hdu.edu.cn/showproblem.php?pid=2717

基本的BFS,朝3个方向搜索即可

#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<queue>using namespace std;int n,k;char visit[100005];struct node{int x;int time;};int go(int x){if(0<=x&&x<=100000)return 1;return 0;}void bfs(int n,int k){queue<node>q;    node st,ed;memset(visit,0,sizeof(visit));visit[n]=1;st.x=n;st.time=0;q.push(st);while(!q.empty()){st=q.front();q.pop();if(st.x==k){printf("%d\n",st.time);return;}        if(go(2*st.x)&&!visit[2*st.x])  {ed.x=2*st.x;ed.time=st.time+1;visit[ed.x]=1;q.push(ed);}if(go(st.x-1)&&!visit[st.x-1]){ed.x=st.x-1;ed.time=st.time+1;visit[ed.x]=1;q.push(ed);}if(go(st.x+1)&&!visit[st.x+1]){ed.x=st.x+1;ed.time=st.time+1;visit[ed.x]=1;q.push(ed);}}    return;}int main(){while(scanf("%d %d",&n,&k)!=EOF){if(n==k)    printf("0\n");    else    bfs(n,k);}return 0;}


原创粉丝点击