您的位置:首页 > 其它

poj 3278 Catch That Cow

2014-12-19 22:15 309 查看
水水的bfs

#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#include <cstring>
using namespace std;
#define INF 100000
int N,K;
int ans[100005];
int flag[100005];
queue <int> q;
void bfs(){
while(!q.empty()){
int pos=q.front();
q.pop();
if(pos==K){
break;
}
if(pos-1>=0&&!flag[pos-1]){
flag[pos-1]=true;
q.push(pos-1);
ans[pos-1]=ans[pos]+1;
}
if(pos+1<=INF&&!flag[pos+1]){
flag[pos+1]=true;
q.push(pos+1);
ans[pos+1]=ans[pos]+1;
}
if(pos*2<=INF&&!flag[pos*2]){
flag[pos*2]=true;
q.push(pos*2);
ans[pos*2]=ans[pos]+1;
}
}
}
int main(){
while(cin>>N>>K){
memset(ans,0,sizeof(ans));
memset(flag,false,sizeof(false));
q.push(N);
bfs();
cout<<ans[K]<<endl;
while(!q.empty()){
q.pop();
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: