您的位置:首页 > 其它

POJ-3278 catch that cow 广度优先搜索

2017-07-31 15:20 543 查看
以牛的位置为起始点向前搜索,注意状态更新就好了

不要问我为什么是从后往前搜...我也不知道,我第一遍从前往后搜的wa了 然后换从后往前搜就AC了...

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;

int dis[100005];
int bfs(int n){
for(int i=0;i<=100000;i++){
dis[i]=99999999;
}
queue<int>q;
q.push(n);
dis
=0;
while(!q.empty()){
int t=q.front();
q.pop();
if(dis[t-1]>dis[t]+1&&t>=1){
dis[t-1]=dis[t]+1;
q.push(t-1);
}
if(dis[t+1]>dis[t]+1&&t<=100000){
dis[t+1]=dis[t]+1;
q.push(t+1);
}
if(t%2==0)
if(dis[t/2]>dis[t]+1&&t>=0){
dis[t/2]=dis[t]+1;
q.push(t/2);
}
}
}

int main()
{
int N,K;
while(cin>>N>>K){
bfs(K);
cout<<dis
<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: