POJ-3278 Catch That Cow【广度优先搜索】

来源:互联网 发布:手机联机软件 编辑:程序博客网 时间:2024/05/18 20:11

1.思路分析

广度优先搜索。

2.方法设计及性能衡量

用队列来进行压入,可以很快求出答案,注意如果N,K相同输出0

3.实现部分

#include<iostream>#include<cstdio>#include<string>#include<stdlib.h>#include<math.h>#include<queue>#include<algorithm>using namespace std;int dp[100010],N,K;queue<int>que;int main(){    while(scanf("%d%d",&N,&K)!=EOF){    que.push(N);        while(!que.empty()){        if(N==K){            printf("%d\n",0);            break;        }        if(dp[K]){            printf("%d\n",dp[K]);            break;        }        int temp=que.front();que.pop();        if(temp!=0&&temp*2<100010&&!dp[temp*2]){        que.push(temp*2);        dp[temp*2]=dp[temp]+1;        }        if(temp-1>=0&&!dp[temp-1]){        que.push(temp-1);        dp[temp-1]=dp[temp]+1;          }        if(temp+1<100010&&!dp[temp+1]){        que.push(temp+1);           dp[temp+1]=dp[temp]+1;        }    }    }    return 0;}
原创粉丝点击