POJ
来源:互联网 发布:tcp套接字编程java 编辑:程序博客网 时间:2024/05/21 17:13
Catch That Cow
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 pointsX- 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?
Line 1: Two space-separated integers:N andK
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
5 17
4
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.
题意:
已知牛和人的位置,人单位时间只能左或右走一步,或者走现在的两倍距离(在数轴上,且牛不动),问什么时候能追上牛。广搜解决
代码:
//所有情况搜索 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<queue>#define maxn 100002using namespace std;int n,m;struct data{int x,step;}p;int vis[100005];void bfs(){queue<data>q;p.x=n;p.step=0;q.push(p);vis[n]=1;while(!q.empty()){p=q.front();q.pop();if(p.x==m){printf("%d\n",p.step);return ;}data k=p;if(k.x+1<maxn&&!vis[k.x+1]){k.x++;vis[k.x]=1;k.step++;q.push(k);}k=p;if(k.x-1>=0&&!vis[k.x-1]){k.x--;vis[k.x]=1;k.step++;q.push(k);}k=p;if(k.x*2<maxn&&!vis[k.x*2]){k.x*=2;vis[k.x]=1;k.step++;q.push(k);}}}int main(){scanf("%d%d",&n,&m);memset(vis,0,sizeof(vis));bfs();return 0;}
阅读全文
0 0
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- 设计模式---策略模式
- Idea开发springmvc项目连接数据库时用户名为windows用户名
- B
- Advanced KeyBoard Tricks
- springMVC mybatis 数据库sql查询有值 但java返回为空
- POJ
- 关于达内,麦洛克菲,坑
- 树链剖分原理与应用
- Python3.4出现unable to find vcvarsall.bat的简单解决方法
- jni动态注册
- antd mobile (三) 集成highcharts--传统方式
- react -native 优秀的框架
- 关于sql语句中 rount(num,num)函数以及sql语句 双竖杠的"||" 的作用
- JS数组