POJ 3278 Catch That Cow
2014-06-13 17:27
471 查看
Catch That Cow
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number
line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Line 1: Two space-separated integers: N and K
Output
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
Sample Input
Sample Output
题目的意思是去抓牛,给出了人和牛的位置,而且牛不会动,人可以有三种走法分别是x-1,x+1,x*2。。问最少走的步数。。
唉。。。贡献了无数的RE。。原因是范围多了1....题目不难就是一个简单三个方向的BFS。。。上代码:
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number
line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Line 1: Two space-separated integers: N and K
Output
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
Sample Input
5 17
Sample Output
4
题目的意思是去抓牛,给出了人和牛的位置,而且牛不会动,人可以有三种走法分别是x-1,x+1,x*2。。问最少走的步数。。
唉。。。贡献了无数的RE。。原因是范围多了1....题目不难就是一个简单三个方向的BFS。。。上代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> struct node { int x,ans; } q[1000001]; int vis[1000001]; int n,k; int jx[]={1,-1}; void BFS () { int i; struct node t,f; int s=0,e=0; t.x=n; t.ans=0; q[e++]=t; vis[t.x]=1; while (s<e) { t=q[s++]; if (t.x==k) { printf ("%d\n",t.ans); break; } for(i=0;i<3;i++) { f.x=t.x+jx[i]; if (i==2)f.x=t.x*2; if(vis[f.x]==0&&f.x>=0&&f.x<=100000) { f.ans=t.ans+1; q[e++]=f; vis[f.x]=1; } } } } int main () { while (~scanf ("%d%d",&n,&k)) { memset(vis,0,sizeof (vis)); BFS(); } return 0; }
相关文章推荐
- POJ 3278 Catch That Cow
- Catch That Cow POJ - 3278 [bfs][最短路]
- POJ-3278(Catch That Cow)
- [kuangbin带你飞]专题一 简单搜索C - Catch That Cow(POJ 3278)
- POJ 3278 Catch That Cow (队列+bfs)
- 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(BFS)
- hdu 2717 && poj 3278 Catch That Cow
- poj 3278 Catch That Cow 优化深搜
- M - Catch That Cow POJ - 3278
- POJ-3278-Catch That Cow
- Catch That Cow POJ - 3278
- poj 3278 catch that cow
- poj 3278 Catch That Cow (BFS)
- POJ3278-Catch That Cow
- POJ 3278 Catch That Cow(kuangbin带你飞 专题一:简单搜索)
- poj 3278 Catch That Cow