Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 44613 | Accepted: 13946 |
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
Output
Sample Input
15 17
Sample Output
14
题意:有一个农民和一头牛,他们在一个数轴上,牛在k位置保持不动,农户開始时在n位置。设农户当前在M位置,每次移动时有三种选择:1.移动到M-1。2.移动到M+1位置;3.移动到M*2的位置。问最少移动多少次能够移动到牛所在的位置。所以能够用BFS来搜索这三个状态,直到搜索到牛所在的位置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71#include<cstdio> #include<iostream> #include<cstring> #include<queue> #include<algorithm> using namespace std; const int N = 200100; int n, k; struct node { int x, step; }; queue<node> q; int vist[N]; void bfs() { int cow, ans; while(!q.empty()) { node tmp = q.front(); q.pop(); cow = tmp.x; ans = tmp.step; if(cow == k) { printf("%dn",ans); return ; } if(cow >= 1 && !vist[cow - 1]) //要保证减1后有意义,所以要cow >= 1 减一的情况 { node temp; vist[cow - 1] = 1; temp.x = cow - 1; temp.step = ans + 1; q.push(temp); } if(cow <= k && !vist[cow + 1]) //加1的情况 { node temp; vist[cow + 1] = 1; temp.x = cow + 1; temp.step = ans + 1; q.push(temp); } if(cow <= k && !vist[cow * 2]) //乘二的情况 { node temp; vist[cow * 2] = 1; temp.x = 2 * cow; temp.step = ans + 1; q.push(temp); } } } int main() { while(~scanf("%d%d",&n,&k)) { while(!q.empty()) q.pop(); memset(vist,0,sizeof(vist)); vist[n] = 1; node t; t.x = n, t.step = 0; q.push(t); bfs(); } return 0; }
最后
以上就是故意耳机最近收集整理的关于POJ 3278: Catch That Cow的全部内容,更多相关POJ内容请搜索靠谱客的其他文章。
发表评论 取消回复