poj 3278 Catch That Cow bfs
来源:互联网 发布:天谕捏脸数据放哪里 编辑:程序博客网 时间:2024/06/16 17:18
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 70246 Accepted: 22095
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
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
把每个状态搜一遍
记得特判
ACcode:
#include <map>#include <queue>#include <cmath>#include <cstdio>#include <cstring>#include <stdlib.h>#include <iostream>#include <algorithm>#define maxn 100100using namespace std;int n,k;struct Node{ int x; int t;};bool vis[maxn];Node my,now,s1,s2,s3;bool judge(Node x){ if(x.x<0||x.x>100000||vis[x.x])return false; return true;}void bfs(){ if(n>=k){ printf("%d\n",n-k); return; } queue<Node>q; memset(vis,0,sizeof(vis)); my.x=n; my.t=0; q.push(my); vis[n]=1; while(!q.empty()){ now=q.front();q.pop(); s1=now;s1.t++;s1.x+=1; if(judge(s1)){ if(s1.x==k){ printf("%d\n",s1.t); return; }else { vis[s1.x]=1; q.push(s1); } } s2=now;s2.t++;s2.x-=1; if(judge(s2)){ if(s2.x==k){ printf("%d\n",s2.t); return; }else { vis[s2.x]=1; q.push(s2); } } s3=now;s3.t++;s3.x*=2; if(judge(s3)){ if(s3.x==k){ printf("%d\n",s3.t); return; }else { vis[s3.x]=1; q.push(s3); } } }}int main(){ while(~scanf("%d%d",&n,&k))bfs(); return 0;}
0 0
- poj 3278 Catch That Cow BFS
- poj 3278 Catch That Cow BFS
- POJ 3278 Catch That Cow BFS
- poj 3278 bfs(Catch That Cow)
- poj 3278 Catch That Cow(bfs)
- POJ 3278 Catch That Cow bfs
- POJ 3278 Catch That Cow 【bfs+队列】
- POJ 3278 Catch That Cow (BFS)
- POJ 3278 Catch That Cow(BFS)
- poj 3278 Catch That Cow bfs
- poj 3278 Catch That Cow (BFS剪枝)
- POJ 3278 Catch That Cow[BFS]
- Poj 3278 Catch That Cow 裸bfs
- POJ 3278 Catch That Cow(图论:BFS)
- POJ 3278 Catch That Cow (BFS)
- POJ 3278 Catch That Cow (BFS)
- poj 3278 Catch That Cow 【BFS】
- POJ--3278:Catch That Cow (BFS)
- MapReduce: Simplified Data Processing on Large Clusters
- centos6.5系统下安装docker新手教程
- 五种常见的网络I/O模型
- org 导出过滤
- ajax 读取xml文件
- poj 3278 Catch That Cow bfs
- LeetCode——030
- 使用ListView的Fragment
- Ubuntu设置静态IP
- Java中的static关键字解析
- CF652 树状数组,离散化,子区间问题
- Kruskal算法(贪心+并查集=最小生成树)
- 算法训练 入学考试
- 【NOIP practice】BSOJ2175 股票 暴力+细节