Catch That Cow<poj3278>
来源:互联网 发布:大疆官网模拟软件p 编辑:程序博客网 时间:2024/06/07 02:28
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
Output
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.
通俗讲就是 n可以+1可以-1可以*2 让n=k 最少要几步
#include <stdio.h> #include <string.h> #include <queue> using namespace std; const int N = 1000000; int map[N+10]; int n,k; struct node { int x,step; }; int check(int x) { if(x<0 || x>=N || map[x]) return 0; return 1; } int bfs(int x) { int i; queue<node> Q; node a,next; a.x = x; a.step = 0; map[x] = 1; Q.push(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() { int ans; while(~scanf("%d%d",&n,&k)) { memset(map,0,sizeof(map)); ans = bfs(n); printf("%d\n",ans); } return 0; }//求一个数到一个数 比如5到17可以加1 减一 乘以二,,,问最少需要几步
- POJ3278 Catch That Cow
- poj3278 Catch That Cow
- poj3278 - Catch That Cow
- POJ3278 Catch That Cow
- POJ3278--Catch That Cow
- POJ3278 Catch That Cow
- poj3278 Catch That Cow
- poj3278 Catch That Cow
- poj3278--Catch That Cow
- POJ3278 Catch That Cow
- poj3278 Catch That Cow
- POJ3278,Catch That Cow
- poj3278--Catch That Cow
- POJ3278---Catch That Cow
- poj3278 Catch That Cow
- poj3278 catch that cow
- Catch That Cow poj3278
- Catch That Cow--poj3278
- Day4、进制的转换、运算符(位操作符)
- POJ 1789 权值为字符串差值的最小生成树
- HashMap源码分析
- Java 中的内部类
- NKOI 1938 最小路径覆盖
- Catch That Cow<poj3278>
- 判断进程是否"以管理员身份运行"
- Linux网络命令--last和lastlog命令
- POJ2674运动碰撞模拟
- POJ 1125 Stockbroker Grapevine
- TimeUnit是什么?
- MySQL数据库的优化-笔者近六年来一线城市工作实战经验 【转】
- 正则表达式应用
- PyGobject(八十八)Pango系列——简介&简单示例