POJ 3278 Catch That Cow
来源:互联网 发布:大学生网购数据 编辑:程序博客网 时间:2024/06/07 01:02
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 90510 Accepted: 28386
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
USACO 2007 Open Silver
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <queue>#include <cctype>#define N 100010int Map[N*2];//判断数字有没有被访问int n,k;using namespace std;struct node{ int x; int step;};int check(int x){ if(x<0||x>N||Map[x]) return 0; return 1;}int bfs(int t){ queue<node> Q; node a,next;//x为当前点 a.x=t; a.step=0; Map[t]=1;//表示当前点被访问过 Q.push(a);//把a入队 while(!Q.empty()) { a=Q.front(); Q.pop();//读出当前队首元素 if(a.x==k)return a.step; next=a;//下一个结点的可能 //每次都将三种状况加入队列之中 next.x=a.x+1; if(check(next.x)) { next.step=a.step+1; Map[next.x]=1; Q.push(next); } next.x=a.x-1; if(check(next.x)) { next.step=a.step+1; Map[next.x]=1; Q.push(next); } next.x=a.x*2; if(check(next.x)) { next.step=a.step+1; Map[next.x]=1; Q.push(next); } } return 0;//表示没有找到}int main(){ while(cin>>n>>k) { memset(Map,0,sizeof(Map)); cout<<bfs(n)<<endl; } return 0;}
阅读全文
0 0
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 catch that cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- Poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 - Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ-3278-Catch That Cow
- es6中let const var的区别
- (JAVA) 最大的矩形-20131203
- zabbix的原理详解及其搭建
- 新人菜鸟——初学ArrayList,关于自己的理解(欢迎大家补充和修正)
- yum 安装默认安装目录
- POJ 3278 Catch That Cow
- i号码牌
- org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map cn.itcast.ssm.po.
- 二叉树-你必须要懂!(二叉树相关算法实现-iOS)
- 【PyQt】在窗口中显示GIF
- Codeforces 808C Tea Party
- c
- 怎样建索引及索引的分类,索引有什么好处,要注意一些什么问题,如会不会影响其他表?
- Sublime text 3最新版破解方法