HDU-2717-Catch That Cow

2014-11-24 11:31:57 · 作者: · 浏览: 1

HDU-2717-Catch That Cow

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


[cpp]
#include
#include
#include
#include
#include
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)
{
queueq;
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() www.2cto.com
{
while(scanf("%d %d",&n,&k)!=EOF)
{
if(n==k)
printf("0\n");
else
bfs(n,k);
}
return 0;
}
作者:Cambridgeacm