[Poj 3278] Catch That Cow BFS
2016-03-21 20:52
357 查看
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 69092 Accepted: 21729
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.
三种情况的bfs建边;
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 69092 Accepted: 21729
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.
三种情况的bfs建边;
#include<iostream> #include<queue> #include<stdio.h> #include<string.h> using namespace std; int vis[200030]; struct node{ int x,step; node(int xx,int st) { x=xx; step=st; }node(){} }; queue<node> q; int ans; int x,k; int flag=0; void bfs() { q.push(node(x,0)); vis[x]=1; while(!q.empty()) { node now=q.front(); q.pop(); if(flag==1) break; int mx=x*2; if(now.x>0&&vis[now.x-1]==0) { if(now.x-1==k) { flag=1; ans=now.step+1; } vis[now.x-1]=1; q.push(node(now.x-1,now.step+1)); } if(now.x<k&&vis[now.x+1]==0) { if(now.x+1==k) { flag=1; ans=now.step+1; } vis[now.x+1]=1; q.push(node(now.x+1,now.step+1)); } if(now.x<k&&vis[now.x*2]==0) { if(now.x*2==k) { flag=1; ans=now.step+1; } vis[now.x*2]=1; q.push(node(now.x*2,now.step+1)); } } } int main() { scanf("%d%d",&x,&k); bfs(); printf("%d\n",ans); }
相关文章推荐
- PopupWindow和AlertDialog区别
- Android下pm 命令详解
- 第三周对构建之法的理解
- 【分享】图解Windows Server 2012 R2 配置IIS 8全过程
- Struts2工作原理
- 蓝牙、红外线与wifi 区别以及不同频段无线电磁波的穿墙和绕过障碍物能力(转)
- 【一张大大的图片】类和对象知识点总结
- /sys/power创建
- Android launcher3 开发初始篇
- 单元测试
- 基于8051内核的实验—流水灯
- iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
- ZOJ 1100 Mondriaan's Dream【状态压缩】【DP】【DFS】
- Windows系统下将MAC系统的可执行dmg文件转换为ISO文件 & 安装到虚拟机的MAC系统上
- iOS进程间通信之CFMessagePort/还有 url schema
- 1006 Problem F
- 深度学习资源汇总
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
- 8051内核的使用