poj 3278 暴力BFS
2015-11-10 00:21
176 查看
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 63977 Accepted: 20085
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
Hint
The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.
题意:
在一个数轴上,给两个点N,K,问N最少经过几次操作可以到K(操作可以是向后走一步,向前走一步,或向前跳淘到2x处,x为当前位置,问最少几次可以到K)
解法:
直接BFS
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 63977 Accepted: 20085
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
Hint
The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.
题意:
在一个数轴上,给两个点N,K,问N最少经过几次操作可以到K(操作可以是向后走一步,向前走一步,或向前跳淘到2x处,x为当前位置,问最少几次可以到K)
解法:
直接BFS
<iostream> #include <algorithm> #include <cstdio> #include <queue> #include <cstring> using namespace std; typedef struct{ int v,h; }Po; //queue<Po>qu; int n,k; int p[200010]; int main() { // freopen("data.out","w",stdout); while(scanf("%d%d",&n,&k)!=EOF){ queue<Po>qu; memset(p,0,sizeof(p)); Po S; S.h = 0; S.v = n; qu.push(S); Po te; while(!qu.empty()){ te = qu.front();qu.pop(); if(te.v == k){ break; } if(0<=te.v + 1&&te.v+1<=100000){ Po ter = te; ter.v++; ter.h++; if(!p[ter.v]){ qu.push(ter); p[ter.v] = 1; } } if(0<=te.v - 1&&te.v - 1<=100000){ Po ter = te; ter.v--; ter.h++; if(!p[ter.v]){ qu.push(ter); p[ter.v] = 1; } } if(0<=te.v*2&&te.v*2<=100000){ Po ter = te; ter.v*=2; ter.h++; if(!p[ter.v]){ qu.push(ter); p[ter.v] = 1; } } } printf("%d\n",te.h); } return 0; }
相关文章推荐
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1001
- POJ ACM 1002
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- POJ-1695-Magazine Delivery-dp
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列
- POJ-1003 Hangover
- POJ-1004 Financial Management
- 用单调栈解决最大连续矩形面积问题
- 2632 Crashing Robots的解决方法
- 1573 Robot Motion (简单题)
- POJ 1200 Crazy Search(简单哈希)
- Surrounded Regions
- Word Ladder, Gray Code
- 【高手回避】poj3268,一道很水的dijkstra算法题