POJ 3278 Catch That Cow
2010-12-16 11:53
316 查看
解题思路:BFS
代码
代码
#include <iostream> #include <cmath> using namespace std; #define MAXN 100001 int n, k, q[MAXN]; bool visit[MAXN]; int main() { int s, e, p, i, j,step,minStep; while (scanf("%d %d", &n, &k)!=EOF) { q[0]=n,s=e=step=0,minStep=MAXN; if(n>=k)minStep=step=n-k; memset(visit, 0, sizeof(visit)); while(s<=e&&step<minStep) { for(i=s,p=e;i<=e;i++) { if(q[i]==k&&minStep>step)minStep=step; if(q[i]-1>=0&&!visit[q[i]-1])q[++p]=q[i]-1,visit[q[p]]=true; if(q[i]+1<=k&&!visit[q[i]+1])q[++p]=q[i]+1, visit[q[p]]=true; if(2*q[i]<=k&&!visit[2*q[i]])q[++p]=2*q[i],visit[q[p]]=true; else if(2*q[i]>k) { if(2*q[i]-k+step+1<minStep)minStep=2*q[i]-k+step+1; if(k-q[i]+step<minStep)minStep=k-q[i]+step; } } step++,s=e+1,e=p; } printf("%d\n", minStep); } return 0; }
相关文章推荐
- POJ 3278 Catch That Cow --- 简单BFS
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- poj 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch that cow
- poj 3278 Catch That Cow(BFS)
- POJ 3278 Catch That Cow
- POJ 3278 Catch that cow
- POJ 3278 Catch That Cow(BFS)
- poj 3278 catch that cow
- POJ 3278 Catch That Cow (bfs+队列)
- POJ 3278 Catch That Cow 【BFS】
- POJ 3278 Catch That Cow (BFS)
- poj 3278 ——Catch That Cow(bfs)
- POJ 3278 Catch That Cow
- [kuangbin带你飞]专题一 简单搜索 C - Catch That Cow poj 3278
- poj 3278 Catch That Cow
- poj 3278 Catch That Cow