hdu 2717 Catch That Cow bfs搜索 解题报告
来源:互联网 发布:软件成熟度模型richard 编辑:程序博客网 时间:2024/04/29 06:29
Catch That Cow
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11107 Accepted Submission(s): 3447
Problem 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?
* 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
4HintThe 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 <cstdio>#include <iostream>#include <queue>#include <algorithm>#include <cstring>#include <stack>#include <cmath>using namespace std;int n,a,b,vis[100010];struct zc{ int now,step;};int check(zc a){ if(a.now<0||a.now>100000)return 0; return 1;}int bfs(){ zc t,p; t.step=0; t.now=a; queue<zc> Q; Q.push(t); while(!Q.empty()) { t=Q.front(); Q.pop(); if(t.now==b)return t.step; //+1 p.now=t.now+1; p.step=t.step+1; if(check(p)&&!vis[p.now]) { Q.push(p); vis[p.now]=1; } //-1 p.now=t.now-1; p.step=t.step+1; if(check(p)&&!vis[p.now]) { Q.push(p); vis[p.now]=1; } //*2 p.now=t.now*2; p.step=t.step+1; if(check(p)&&!vis[p.now]) { Q.push(p); vis[p.now]=1; } } return -1;}int main(){ while(scanf("%d %d",&a,&b)!=EOF) { memset(vis,0,sizeof(vis)); printf("%d\n",bfs()); } return 0;}
0 0
- hdu 2717 Catch That Cow bfs搜索 解题报告
- HDU 2717 Catch That Cow (搜索 - BFS)
- POJ3278 Catch That Cow ACM解题报告(BFS)
- Catch That Cow解题报告
- hdu 2717 Catch That Cow bfs
- hdu 2717 Catch That Cow(bfs)
- HDU 2717 Catch That Cow (BFS)
- HDU 2717--Catch That Cow【BFS】
- HDU 2717:Catch That Cow 【bfs】
- hdu-2717 Catch That Cow (BFS)
- hdu 2717 Catch That Cow(BFS)
- HDU 2717 Catch That Cow(BFS)
- HDU 2717 Catch That Cow 水题BFS
- HDU 2717 Catch That Cow [BFS]
- HDU 2717 Catch That Cow(BFS)
- HDU 2717 Catch That Cow (BFS)
- HDU 2717 Catch That Cow (BFS)
- 【HDU 2717】Catch That Cow(BFS)
- popupwindow放的位置有错,又找不到原因?可能是这个搞了我一天的问题。
- C语言链队的相关操作
- VE设计#5 表现层delete界面
- VS系列控制台闪退解决
- HDOJ 1164 Eddy's research I(拆分成素数因子)
- hdu 2717 Catch That Cow bfs搜索 解题报告
- vagrant使用三种网络配置
- hibernate常用集合映射详解
- C++第二次上机-作业
- Map的赋值和putAll的区别
- 定时器的使用
- hdu 2860 Regroup【并查集+有道】
- 通过XML解析,对pandas的DataFrame.append()的思考及对大文件解析加速的方法
- 第一专题:贪心算法总结