您的位置:首页 > 其它

poj 3278 Catch That Cow

2015-06-08 13:38 309 查看
囧。。。。。一个很简单的广搜,由于边界条件没有控制好,贡献好几发wrong。。。55555,以后要注意了,这种小问题才是最恼人的。。。

点击打开链接

#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
#include<queue>
#include<algorithm>
#define MAX 100010
using namespace std;
int vis[MAX];
struct node{
int x;
int step;
};
int bfs(int n,int k)
{
queue<node>q;
memset(vis,0,sizeof(vis));
vis
=1;
node st;
st.x=n;
st.step=0;

q.push(st);
while(!q.empty())
{
node temp= q.front();
q.pop();
node cur1,cur2,cur3;
cur1=cur2=cur3=temp;
if(cur1.x==k)
{
printf("%d\n",cur1.step);
}
cur1.x*=2;
cur1.step++;
cur2.x-=1;
cur2.step++;
cur3.x+=1;
cur3.step++;
if(cur1.x>0&&cur1.x<100001&&!vis[cur1.x])
{
q.push(cur1);
vis[cur1.x]=1;
}
if(cur2.x>=0&&cur2.x<100001&&!vis[cur2.x])
{
q.push(cur2);
vis[cur2.x]=1;
}
if(cur3.x>0&&cur3.x<100001&&!vis[cur3.x])
{
q.push(cur3);
vis[cur3.x]=1;
}

}

}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
bfs(n,m);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: