HDU 2717 Catch That Cow【BFS】
2016-07-27 17:25
387 查看
Catch That Cow
Time Limit : 5000/2000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 6 Accepted Submission(s) : 4
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
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 oftransportation: 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.简单的广搜题
#include<stdio.h> #include<queue> #include<string.h> using namespace std; int vis[1000010]; struct node { int x,step; }; void BFS(int a,int b) { queue<node>q; node cur,next; cur.x=a; cur.step=0; vis[a]=1; q.push(cur); while(!q.empty()) { cur=q.front(); q.pop(); if(cur.x==b) { printf("%d\n",cur.step);return; } next.x=cur.x-1; if(next.x>=0&&next.x<=100000&&vis[next.x]!=1) { vis[next.x]=1; next.step=cur.step+1; q.push(next); } next.x=cur.x+1; if(next.x>=0&&next.x<=100000&&vis[next.x]!=1) { vis[next.x]=1; next.step=cur.step+1; q.push(next); } next.x=cur.x*2; if(next.x>=0&&next.x<=100000&&vis[next.x]!=1) { vis[next.x]=1; next.step=cur.step+1; q.push(next); } } } int main (void) { int n,k; while(~scanf("%d%d",&n,&k)) { memset(vis,0,sizeof(vis)); BFS(n,k); } return 0; }
相关文章推荐
- 脚本编写
- 计算机网络基础知识总结
- 集合详解(三)----Map的两种遍历方式
- 深入理解Java中的容器
- 堆排序
- Linux 之 信号
- Redhat Enterprise 7.2 安装 MySQL 5.7
- QA问答系统
- 基于tcp的c/s模型的一个简单的socket实现
- Oracle SQL优化 总结(很全面)一起来学习一下!
- Android源码编译并预装带JNI的apk
- mongoDB mapReduce
- 快速排序法
- UNIX下的LD_PRELOAD环境变量
- (转) Lua string 操作函数
- Android Repo的manifest XML文件格式
- 关于Windows cmd下目录带空格的处理办法
- HDU 1003 Max Sum(最大连续子列和)
- tjut 4616
- shell实现磁盘分区由MBR转换为GPT