poj3278-Catch That Cow
2017-06-10 19:56
239 查看
Problem 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.
Example Input
5 17
Example 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.
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.
Example Input
5 17
Example 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.
#include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <cstring> using namespace std; int book[1000005]; int n,k; bool judge(int x) { if(x<0||x>=1000000||book[x]) return 0; return 1; } struct node { int step; int point; }t,v; void bfs(int n) { queue<node>q; t.point=n; t.step=0; q.push(t); book =1; while(!q.empty()) { v=q.front(); q.pop(); if(v.point==k) { cout<<v.step<<endl; return ; } t=v; t.point=v.point+1; if(judge(t.point)) { t.step=v.step+1; book[t.point]=1; q.push(t); } t.point=v.point-1; if(judge(t.point)) { t.step=v.step+1; book[t.point]=1; q.push(t); } t.point=v.point*2; if(judge(t.point)) { 4000 t.step=v.step+1; book[t.point]=1; q.push(t); } } } int main(int argc, char const *argv[]) { scanf("%d%d",&n,&k); bfs(n); return 0; }
相关文章推荐
- POJ3278 Catch That Cow(BFS)
- poj3278 Catch That Cow(BFS)
- POJ3278 Catch That Cow
- poj3278 - Catch That Cow
- poj3278 Catch That Cow BFS
- POJ3278 Catch That Cow BFS入门
- POJ3278 Catch That Cow 解题报告
- poj3278 Catch That Cow |bfs|队列|Java
- poj3278 Catch that cow 代码比很多人精简。。。BFS
- poj3278 Catch That Cow(bfs搜索)
- poj3278 Catch That Cow bfs
- POJ3278,Catch That Cow
- Poj3278 BFS Catch That Cow
- kuangbin专题一:C题,POJ3278:Catch That Cow
- poj3278 hdu2717 Catch That Cow 广度优先搜索
- poj3278 Catch That Cow
- POJ3278 Catch That Cow
- poj3278 Catch That Cow bfs
- poj3278--Catch That Cow
- poj3278 Catch That Cow(剪枝)