博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-2717Catch That Cow(bfs 求最少几步达到指定值)
阅读量:4048 次
发布时间:2019-05-25

本文共 1910 字,大约阅读时间需要 6 分钟。

Catch That Cow

Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12531    Accepted Submission(s): 3876


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?
 

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.
 

Source
 

Recommend
teddy   |   We have carefully selected several similar problems for you:            
#include
#include
#include
#include
#include
#include
using namespace std;int vis[200100];int n,m;struct node{ int first; int second; node(int a,int b) { first=a; second=b; }};void bfs(){ queue
que; que.push(node (n,0)); vis[n]=1; int k,t; while(1) { node now=que.front(); que.pop(); k=now.first; t=now.second; if(k==m) { printf("%d\n",t); break; } if(!vis[k-1]&&k-1>=0) { vis[k-1]=1; que.push(node(k-1,t+1)); } if(!vis[k+1]&&k+1<=100000) { vis[k+1]=1; que.push(node(k+1,t+1)); } if(!vis[k*2]&&k*2<=100000) { vis[k*2]=1; que.push(node(k*2,t+1)); } }}int main(){ while(~scanf("%d%d",&n,&m)) { memset(vis,0,sizeof(vis)); bfs(); } return 0;}
 

转载地址:http://nafci.baihongyu.com/

你可能感兴趣的文章
python中SQLite3 数据库语句使用总结——增删改查
查看>>
Java网络编程总结
查看>>
leetcode 477. 汉明距离总和——超出时间限制
查看>>
基于SSM校园二手交易市场系统——课程设计(毕业设计)
查看>>
leetcode 1882.使用服务器处理任务——优先队列
查看>>
leetcode 523.连续的子数组的和——前缀和+哈希表
查看>>
Java中的set的toArray()转成的数组如何进行接收
查看>>
剑指offer 43 1~n整数中1出现的次数
查看>>
基于SSM的图书馆管理系统——计算机类专业课程设计(毕业设计)
查看>>
leetcode 1239. 串联字符串的最大长度——回溯+位运算
查看>>
基于SSH在线考试系统(计算机专业认证考试)——计算机类专业课程设计(毕业设计)
查看>>
Springboot的仓库管理系统——计算机类专业课程设计(毕业设计)
查看>>
刷新页面实现方式总结(HTML,ASP,JS)
查看>>
根据地球上两个地点的经度和纬度,如何获得这两点的距离?
查看>>
COM组件的使用
查看>>
关于文件夹的手动隐藏和恢复
查看>>
JavaScript和Jscript的版本及规范
查看>>
WinCE 对 Java脚本的支持
查看>>
XML学习
查看>>
ASP中LIST控件
查看>>