杭电 HDU 2717 Catch That Cow
来源:互联网 发布:京东秒杀软件安卓版 编辑:程序博客网 时间:2024/05/01 12:15
http://acm.hdu.edu.cn/showproblem.php?pid=2717
Catch That Cow
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4938 Accepted Submission(s): 1566
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 minutes.
用的广搜:
AC代码:
#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int number[100010];struct Node{ int n; //记录当前位置 int i; //记录当前第几步};int Bfs(Node n, int k){ queue<Node> q; Node now,next; q.push(n); while(!q.empty()) { now = q.front(); q.pop(); number[now.n] = 2; if(now.n != k) { next.i = now.i + 1; //走的步数加一 next.n = now.n + 1; //向右走一步 if(next.n >= 0 && next.n <= 100000 && number[next.n] == 0) { number[next.n] = 1; q.push(next); } next.n = now.n - 1; //向左走一步 if(next.n >= 0 && next.n <= 100000 && number[next.n] == 0) { number[next.n] = 1; q.push(next); } next.n = now.n*2; //跳到当前数字的两倍位置 if(next.n >= 0 && next.n <= 100000 && number[next.n] == 0) { number[next.n] = 1; q.push(next); } } else { return now.i; } }}int main(){ int n,k,num; Node p; while(scanf("%d%d",&n,&k)!=EOF) { memset(number,0,sizeof(number)); p.n = n; p.i = 0; num = Bfs(p,k); printf("%d\n",num); } return 0;}
- 杭电 hdu 2717 Catch That Cow
- 杭电 HDU 2717 Catch That Cow
- 杭电 HDU 2717 Catch That Cow
- Catch That Cow 杭电2717【BFS】
- 杭电2717Catch That Cow
- 【杭电】[2717]Catch That Cow
- 杭电 2717 Catch That Cow
- hdu 2717 Catch That Cow
- HDU-2717-Catch That Cow
- HDU 2717 Catch That Cow
- hdu 2717Catch That Cow
- hdu 2717 Catch That Cow
- HDU-2717-Catch That Cow
- hdu 2717 Catch That Cow
- hdu 2717 Catch That Cow
- HDU 2717 Catch That Cow
- hdu 2717 Catch That Cow
- hdu 2717 Catch That Cow
- 直接拿来用的JS技巧
- 那个 “ Free Heap block xxx modified at xxx after it was freed”的问题
- 测试要了解的.net框架下的 webservice
- 电商精髓:舍小利多走量省成本
- PC使用wireshark直接查看android手机上tcpdump捕捉到的数据包
- 杭电 HDU 2717 Catch That Cow
- iOS: NSNotification的方法notificationWithName:object:userInfo:
- 利用大纲级别自动生成目录的步骤
- C++ Primer 中文版 学习笔记(十)
- 文件内容及文件名替换Shell-linux
- UNIX环境高级编程——时间和日期
- STM32 UART1 DMA 发送数据
- hdu1323-Perfection
- android读写Sdcard