hdu2717:Catch That Cow
来源:互联网 发布:调和的宝札淘宝 编辑:程序博客网 时间:2024/06/05 07:51
Catch That Cow
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14813 Accepted Submission(s): 4476
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?
* 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
4HintThe 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 minute
思路:当前所在的点看作根节点,那么可以走的三种路径就是三个儿子。这样就很容易看出这是一个树,bfs
#include<iostream>#include<cstdio>#include<string>#include<map>#include<algorithm>#include<string.h>#include<queue>#define ll long longusing namespace std;int n,k;int v[200005];int bfs(){ int a; a=n; v[n]=1; queue<int>q; q.push(a); while(!q.empty()){ a=q.front(); q.pop(); if(a==k){ return v[a]; } if(!v[a-1]&&a-1>=0){ v[a-1]=v[a]+1; q.push(a-1); } if(!v[a+1]&&a+1<=100000){ v[a+1]=v[a]+1; q.push(a+1); } if(!v[a*2]&&a*2<=100000){//数组要开大点 v[200005],不然会越界 or a*2放在 !v[a*2]前面 v[a*2]=v[a]+1; q.push(a*2); } } return -1;}int main(){ while(cin>>n>>k){ memset(v,0,sizeof(v)); int ans; ans=bfs(); cout<<ans-1<<endl; }}
阅读全文
0 0
- 【HDU2717】-Catch that cow
- HDU2717:Catch That Cow
- HDU2717 Catch That Cow
- HDU2717 Catch That Cow
- HDU2717 - Catch That Cow
- HDU2717 Catch That Cow
- HDU2717 Catch That Cow
- HDU2717 Catch That Cow
- hdu2717:Catch That Cow
- HDU2717 Catch That Cow
- hdu2717 Catch That Cow
- hdu2717 Catch That Cow
- hdu2717 Catch That Cow
- HDU2717:Catch That Cow(BFS)
- hdu2717 Catch That Cow(搜索)
- HDU2717 Catch That Cow BFS
- HDU2717:Catch That Cow(BFS)
- hdu2717 catch that cow【BFS】
- Linux nc命令详解
- 在一个Activity(Activity B)中如何关闭另一个Activity(Activity A)?
- 高并发下的数据库设计水平分区之二篇
- MySQL数据库命名规范
- Nopi导出execl
- hdu2717:Catch That Cow
- linux定时执行--计划任务
- APP测试 1
- 蓝牙基本服务
- 怎么用js动态 设置select中的某个值为选中项
- myeclipse下对tomcat项目进行debug断点调试
- 十五、Rank
- 无人机的未来在于集群化?
- C#调用科大讯飞离线语音合成TTS