Catch That Cow
来源:互联网 发布:国际经济数据 编辑:程序博客网 时间:2024/05/21 17:44
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.
* 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?
import java.util.*;public class Main {public LinkedList<Node> queue;public boolean []visit;public Main(){this.queue=new LinkedList<Main.Node>();visit=new boolean[200000];}public class Node{int num;int count;public Node(){}public Node(int num,int count) {this.num=num;this.count=count;}}public int bfs(int n,int k){if(n==k) return 0; Node n0=new Node(n,0);queue.add(n0);visit[n]=true;while(!queue.isEmpty()){Node tmp=queue.peek();if(tmp.num==k) return tmp.count; queue.remove();Node n1=new Node(tmp.num-1,tmp.count+1);Node n2=new Node(tmp.num+1,tmp.count+1);Node n3=new Node(tmp.num*2,tmp.count+1);if(n1.num==k) return n1.count;if(n2.num==k) return n2.count; if(n3.num==k) return n3.count; if(n1.num<150005 && n1.num>=0 && visit[n1.num]!=true ){queue.add(n1);visit[n1.num]=true;}if(n2.num<150005 && n2.num>=0 && visit[n2.num]!=true) {queue.add(n2);visit[n2.num]=true;}if(n3.num<150005 && n3.num>=0 && visit[n3.num]!=true){queue.add(n3);visit[n3.num]=true;}}return 0;}public static void main(String[] args) {int n,k;Scanner cin=new Scanner(System.in);while(cin.hasNext()){n=cin.nextInt();k=cin.nextInt();System.out.println(new Main().bfs(n, k));}}}
0 0
- POJ3278 Catch That Cow
- Catch That Cow
- Catch That Cow
- poj3278 Catch That Cow
- 3278. Catch That Cow
- 【HDU2717】-Catch that cow
- Catch That Cow
- F - Catch That Cow
- poj3278 - Catch That Cow
- HDOJ Catch That Cow
- 2717Catch That Cow
- POJ3278 Catch That Cow
- 3278Catch That Cow
- Catch That Cow(bfs)
- Catch that cow (H2717)
- POJ3278--Catch That Cow
- Catch That Cow
- Catch That Cow+BFS
- oracle把一个表中的数据导入另一个表
- hdu-1255-覆盖的面积-线段树
- 【高德地图API】从零开始学高德JS API(五)路线规划——驾车|公交|步行
- hive优化之------控制hive任务中的map数和reduce数
- 学习精神
- Catch That Cow
- s:if标签test属性多el表达式
- “大型票务系统”和“实物电商系统”和企业其他部门的依赖关系对项目管理的影响
- 虚函数的特性
- 程序员可以在周末做的8件事
- gentoo下面安装metasploit的一些问题
- 这是微软自带的一个利用cimage进行截图的例子,值得看看
- 希望成绩出来的时候我不会在伤心一次求不要太低啊
- mysql存储过程的创建,删除,调用及其他常用命令