poj3278
来源:互联网 发布:python web server 编辑:程序博客网 时间:2024/06/05 20:35
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 71110 Accepted: 22371
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<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<math.h>struct node{ int step; int loc;};struct node que[1000005];int book[400005];int main(){ int start,end; int head=0; int tail=0; scanf("%d %d",&start,&end); if(start>=end) printf("%d\n",start-end); else{ que[tail].loc=start; que[tail].step=0; book[start]=1; tail++; int i,j; int t=0; int flag=0; while(head<tail){ for(i=1;i<=3;i++){ if(i==1){ t=que[head].loc-1; } else if(i==2){ t=que[head].loc+1; } else if(i==3){ t=que[head].loc*2; } if(t<0||t>100005) continue; if(book[t]==0){ book[t]=1; que[tail].loc=t; que[tail].step=que[head].step+1; tail++; } if(t==end){ flag=1; break; } } if(flag) break; head++; } printf("%d\n",que[tail-1].step); } return 0;}注意考虑起点和终点一样的情况
0 0
- POJ3278
- POJ3278
- POJ3278
- poj3278
- poj3278
- poj3278
- POJ3278
- POJ3278
- poj3278
- poj3278
- poj3278
- POJ3278
- poj3278
- poj3278
- poj3278
- poj3278
- POJ3278
- POJ3278
- 总线flash和spi flash
- js获取html元素注意点
- HTTP状态码
- dubbo Provider+zookeeper(一)
- WPF/Silverligh实现图片的放大缩小拖动
- poj3278
- 【Java】Java NIO
- Linux shell “if else” 与 条件判定
- android面试题大全
- 配置redux react 以及webpack
- IE下get方式传中文参数乱码解决方法
- Java并发编程—阻塞队列源码分析
- Android studio适配6.0的一些小问题
- 【获奖公布】走进VR开发世界——我们离开发一款VR大作还有多远?