hdu 2717 Catch That Cow

来源:互联网 发布:襄阳java培训机构 编辑:程序博客网 时间:2024/05/22 06:40
#include<cstdio>#include<cstring>int q[100001];int dis[100001];bool vis[100001];int ans;int end;bool istrue(int x){if(x>=0&&x<=100000&&!vis[x]) return 1;return 0;}void bfs(int start){int front=1,rear=1;q[rear++]=start;vis[start]=1;while(front<rear){start=q[front];if(istrue(start+1)){dis[rear]=dis[front]+1;if(start+1==end){ans=dis[rear];return;}vis[start+1]=1;q[rear++]=start+1;}if(istrue(start-1)){dis[rear]=dis[front]+1;if(start-1==end){ans=dis[rear];return;}vis[start-1]=1;q[rear++]=start-1;}if(istrue(start*2)){dis[rear]=dis[front]+1;if(start*2==end){ans=dis[rear];return;}vis[start*2]=1;q[rear++]=start*2;}front++;}}int main(){int start;while(scanf("%d %d",&start,&end)!=EOF){ans=0;if(start==end) {printf("0\n");continue;}if(end<start) {printf("%d\n",start-end);continue;}memset(dis,0,sizeof(dis));memset(vis,0,sizeof(vis));bfs(start);printf("%d\n",ans);}return 0;}

原创粉丝点击