HDU2717 Catch That Cow(BFS)

来源:互联网 发布:知乎日报api接口地址 编辑:程序博客网 时间:2024/05/05 14:05

BFS的水题,完完全全的模板题,但是一直在思考BFS的剪枝问题,像这道题好像想不到什么能剪枝的地方了。。

#include<iostream>#include<queue>#include<string.h>using namespace std;int visit[1000000],n,m;struct node{int x,s;}p,q;int bfs(int x){queue<node> Q;p.x = x;p.s = 0;visit[p.x] = 1;Q.push(p);while(!Q.empty()){p = Q.front();Q.pop();if(p.x == n)return p.s;q = p;q.x = p.x + 1;if(q.x>=0 && q.x<1000000 && visit[q.x] == 0){q.s = p.s + 1;visit[q.x] = 1;Q.push(q);}q.x = p.x - 1;if(q.x>=0 && q.x<1000000 && visit[q.x] == 0){q.s = p.s + 1;visit[q.x] = 1;Q.push(q);}q.x = p.x * 2;if(q.x>=0 && q.x<1000000 && visit[q.x] == 0){q.s = p.s + 1;visit[q.x] = 1;Q.push(q);}}return -1;}int main(){while(~scanf("%d %d",&m,&n)){memset(visit,0,sizeof(visit));printf("%d\n",bfs(m));}return 0;}


0 0
原创粉丝点击