Catch That Cow(广度优先搜索_bfs)
来源:互联网 发布:linux自动化测试工具 编辑:程序博客网 时间:2024/05/18 16:55
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 48036 Accepted: 15057
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a pointN (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 orX + 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 andK
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
题意:输入两个数n,k。求从n到k最少走多少步。可以前进1后退1或者当前的位置*2;
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <algorithm>using namespace std;struct node{ int x;//当前位置 int ans;//走的步数}q[1000010];int vis[1000010];//标记变量,该点是否被访问;int jx[]={-1,1};//后退1或者前进1;struct node t,f;int n,k;void bfs(){ int i; int s=0,e=0;//指针模拟队列。往队列加e++ 往队列里提出数s++ memset(vis,0,sizeof(vis)); t.x=n;//当前初始位置 vis[t.x]=1;//标记为1代表访问过; t.ans=0;//初始位置步数为0; q[e++]=t;//把当前步数加人队列 while(s<e)//当队列不为空 { t=q[s++];//提出 if(t.x==k)//如果该数正好等于目标位置直接输出步数 { printf("%d\n",t.ans); break; } for(i=0;i<3;i++)//i=0后退一步,i=1前进一步,i=2此时的位置*2; { if(i==2) { f.x=t.x*2; } else { f.x=t.x+jx[i]; } if(f.x>=0&&f.x<=100000&&!vis[f.x]) { f.ans=t.ans+1; q[e++]=f; vis[f.x]=1; } } }}int main(){ while(~scanf("%d %d",&n,&k)) { bfs(); } return 0;}
0 0
- Catch That Cow(广度优先搜索_bfs)
- poj3287 Catch That Cow(广度优先搜索)
- Catch That Cow-----广度优先搜索
- POJ3278 - Catch That Cow - 广度优先搜索
- Catch That Cow-广度优先搜索-POJ3278
- Catch That Cow广度优先搜索
- POJ 3278 Catch That Cow(BFS广度优先搜索)
- POJ 3278-Catch That Cow 广度优先搜索BFS
- POJ3278 Catch That Cow 广度优先搜索版
- poj3278 hdu2717 Catch That Cow 广度优先搜索
- (广度优先搜索)算法题-poj3278 Catch That Cow
- poj 3278 Catch That Cow 广度优先搜索
- POJ3278(BFS广度优先搜索)之Catch That Cow
- Catch That Cow POJ 3278 BFS 广度优先搜索
- POJ-3278 catch that cow 广度优先搜索
- POJ-3278 Catch That Cow【广度优先搜索】
- poj 3278 Catch That Cow 广度优先搜索 + 回溯 队列 剪枝
- HDOJ/HDU 2717 Catch That Cow 一维广度优先搜索 so easy..............
- JAVA程序设计(04.3)-----1.寻找完美数 10000以内 2.编程找出谁是小偷 3.21根火柴……
- Spring之AOP
- 如何修改android 不能运行 java Application
- Oc课堂笔记->字符串NSString
- 开帖学习C语言,只是为了让自己变得更好。
- Catch That Cow(广度优先搜索_bfs)
- ASIHttpRequest和json-framework实现json解析(iOS客户端)
- 国内外知名IT科技博客(强烈推荐)
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方案开发集成Apps 总结
- perl
- c++ extern和const联用
- MetaQ技术内幕——源码分析(一)
- c++类模板与函数模板的偏特化
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路