poj 3278 广搜
2016-01-30 09:46
204 查看
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.
题意:就是通过三种方式从一个点到另一个点
这里使用队列可以减少空间的使用,用数组模拟就不知道要多大的空间了
注意这里搜索 5 到时 17 是用了4 步,
但是17到 5 就会用 12 步,注意题目说的运动顺序
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 70333 | Accepted: 22115 |
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.
题意:就是通过三种方式从一个点到另一个点
这里使用队列可以减少空间的使用,用数组模拟就不知道要多大的空间了
注意这里搜索 5 到时 17 是用了4 步,
但是17到 5 就会用 12 步,注意题目说的运动顺序
a[m-1]=a[m]+1;上面这一步意思是:用了多少步走到点 m-1。其他同理可以得到
#include<stdio.h> #include<queue> #include<string.h> using namespace std; const int maxn=100001; int used[maxn]; int a[maxn]; int main() { int m,n; while(scanf("%d%d",&m,&n)!=EOF) { memset(used,0,sizeof(used)); memset(a,0,sizeof(a)); queue<int>q; q.push(m); used[m]=1; while(q.size()!=0) { m=q.front(); q.pop(); if(m==n) break; if(m-1>=0&&used[m-1]==0){ q.push(m-1); used[m-1]=1; a[m-1]=a[m]+1; } if(m+1<=maxn&&used[m+1]==0){ q.push(m+1); used[m+1]=1; a[m+1]=a[m]+1; } if(m*2<=maxn&&used[m*2]==0){ q.push(m*2); used[m*2]=1; a[m*2]=a[m]+1; } } printf("%d\n",a ); } return 0; }
相关文章推荐
- hdu 2047(递推)
- iOS ffmpeg 之Linux下搭建rtmp nginx服务器
- 《iOS Human Interface Guidelines》——Edit Menu
- unity3D学习 1
- js使用cookie保存登陆信息
- iOS 牛人博客
- 【Android】AS环境下,在布局中使用android:gravity="left/right"提示使用start/end
- 最短路坑题——贝西回家 uscow2.2.4
- Linux下常用命令总结
- 对struts2的OGNL的理解
- 自作拖拽事件
- 使用Spring实现读写分离(MySQL实现主从复制)
- uva 580
- Yii - data exists update else insert
- cookie的设置、获取和删除封装
- 获取url中"?"符后的字串
- 多线程函数指针
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- IOException while loading persisted sessions: java.io.EOFException
- 关联规则—频繁项集Apriori算法