hdu-2717 Catch That Cow (BFS)
2015-08-21 01:07
429 查看
Catch That Cow
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9744 Accepted Submission(s): 3048
[align=left]Problem Description[/align]
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?
[align=left]Input[/align]
Line 1: Two space-separated integers: N and K
[align=left]Output[/align]
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
[align=left]Sample Input[/align]
5 17
[align=left]Sample Output[/align]
4
HintThe 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.第一道BFS题
# include<cstdio> # include<cstring> # include<queue> # include<algorithm> # define MAXM 100000 + 100 using namespace std; int num[MAXM]; int vis[MAXM]; void bfs(int start, int end) { int now, next; int i, j; queue<int>q; q.push(start); vis[start] = 1; while(!q.empty()) { now = q.front(); q.pop(); if(now == end) break; next = now + 1; if(!vis[next] && next <= end) { num[next] = num[now] + 1; vis[next] = 1; q.push(next); } next = now - 1; if(!vis[next] && next >= 0) { num[next] = num[now] + 1; vis[next] = 1; q.push(next); } next = now * 2; if(!vis[next] && next <= MAXM) { num[next] = num[now] + 1; vis[next] = 1; q.push(next); } } printf("%d\n",num[end]); } int main() { int i, j; int start, end; while(scanf("%d%d",&start,&end)!=EOF) { memset(vis, 0, sizeof(vis)); memset(num, 0, sizeof(num)); bfs(start, end); } return 0; }
相关文章推荐
- pythonbrew+virtualenvwrapper隔离出django开发环境
- shell中的颜色显示
- PowerDesigner15下载、安装以及破解
- Job流程:决定map个数的因素
- iOS开发小白学习体验-3
- Android listView中点击item或Item中控件跳转对应的详情页面的实现(商品详情查看)
- 【8-20】java学习笔记02
- ubuntu各版本工具下载链接
- ReSharper 配置及用法
- 软件测试典型问题记录-修改窗口页面存在两个页签,修改后在某个页签点确定,另一页签内容未修改
- 百钱买百鸡之数学优化
- PHP MySQL
- 03_Nginx添加新模块
- Firebug折腾记_(1)安装及简介
- 03_Nginx添加新模块
- Firebug折腾记_(1)安装及简介
- 阻塞套接字返回EAGAIN
- HDU 1010 Tempter of the Bone(DFS)
- 七夕,单身的我是如何在敲完代码之后收到12束玫瑰的
- 让结构体类型frame的某个属性可以直接修改