POJ(3278)Catch That Cow
2016-07-27 17:31
423 查看
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
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.
一个人追一头牛,给出人的位置,与走法,问人能多少秒追到牛:
简单搜索bfs
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 74588 | Accepted: 23516 |
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.
一个人追一头牛,给出人的位置,与走法,问人能多少秒追到牛:
简单搜索bfs
#include <iostream> #include<algorithm> #include<stdio.h> #include <string.h> #include <queue> using namespace std; int h[1000010],v[1000010],n,k; void bfs() { memset(v,0,sizeof(v)); queue<int>q; q.push(n); v =1; h =0; while(!q.empty()) { int temp=q.front(); q.pop(); if(temp+1==k||temp-1==k||temp*2==k) { h[k]=h[temp]+1; break; } if(temp-1>=0&&!v[temp-1]) { q.push(temp-1); v[temp-1]=1; h[temp-1]=h[temp]+1; } if(temp+1<=1000000&&!v[temp+1]) { q.push(temp+1); v[temp+1]=1; h[temp+1]=h[temp]+1; } if(temp*2<=1000000&&!v[temp*2]) { q.push(temp*2); v[temp*2]=1; h[temp*2]=h[temp]+1; } } } int main() { while(~scanf("%d%d",&n,&k)) { if(n==k) { printf("0\n"); continue; } else bfs(); printf("%d\n",h[k]); } return 0; }
相关文章推荐
- Redis Twemproxy集群
- Xcode7中创建静态库
- 获取手机屏幕DisplayMetrics属性方法
- ssh,公钥和私钥,远程复制
- java开发必备的linux命令
- Data Binding Component详解 - 换肤什么的只是它的一个小应用!
- Android Device Monitor查找手机内存存储的文件夹位置
- C#文件操作
- 如何用HttpWebRequest通过代理IP post 到https的网站?
- sap abap 性能优化(二)
- 大数据量查询优化
- HTTP
- Centos6.8下搭建SVN服务器
- Kafka剖析(一):Kafka背景及架构介绍
- 超实用!Android Camera2.0新API与Camera旧API使用对比总结
- CRF的开源实现
- Android Studio使用第三方类库
- local_irq_save 与 local_irq_restore
- 关于js原型继承
- 开源Json处理工具是如何帮我们解析Json的