您的位置:首页 > 其它

hdu 2717 Catch That Cow

2016-11-04 21:46 274 查看
广度优先搜索

分三种情况进行搜索

每次都是进队出

#include<stdio.h>
#include<queue>
#include<string.h>
using namespace std;
int n,m;
int v[200001];
int BFS(int a)
{
queue<int>q;
q.push(a);
while(!q.empty())
{
int c;
v[a]=1;
int b=q.front();
q.pop();
if(b==m)
return v[m]-1;
for(int i=0; i<3; i++)
{
if(i==0)
c=b+1;
if(i==1)
c=b-1;
if(i==2)
c=b*2;
if(!v[c]&&c>=0&&c<100001)
{
v[c]=v[b]+1;
q.push(c);
}
}
}
}
int  main()
{
while(~scanf("%d%d",&n,&m))
{
memset(v,0,sizeof(v));
printf("%d\n",BFS(n));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  搜索 bfs