poj 3278 广搜
来源:互联网 发布:2017c语言成绩查询系统 编辑:程序博客网 时间:2024/04/28 03:43
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?
Input
Output
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.
题意:就是通过三种方式从一个点到另一个点
这里使用队列可以减少空间的使用,用数组模拟就不知道要多大的空间了
注意这里搜索 5 到时 17 是用了4 步,
但是17到 5 就会用 12 步,注意题目说的运动顺序
a[m-1]=a[m]+1;上面这一步意思是:用了多少步走到点 m-1。其他同理可以得到
#include<stdio.h>#include<queue>#include<string.h>using namespace std;const int maxn=100001;int used[maxn];int a[maxn];int main(){ int m,n; while(scanf("%d%d",&m,&n)!=EOF) { memset(used,0,sizeof(used)); memset(a,0,sizeof(a)); queue<int>q; q.push(m); used[m]=1; while(q.size()!=0) { m=q.front(); q.pop(); if(m==n) break; if(m-1>=0&&used[m-1]==0){ q.push(m-1); used[m-1]=1; a[m-1]=a[m]+1; } if(m+1<=maxn&&used[m+1]==0){ q.push(m+1); used[m+1]=1; a[m+1]=a[m]+1; } if(m*2<=maxn&&used[m*2]==0){ q.push(m*2); used[m*2]=1; a[m*2]=a[m]+1; } } printf("%d\n",a[n]); } return 0;}
- poj 3278 广搜
- POJ 3278 简单广搜
- POJ 3278(简单广搜)
- poj 3278 简单的广搜入门
- 7.12 POJ 3278 A - 广搜 基础
- poj 3278 Catch That Cow 广搜
- POJ 3278 抓牛简单广搜
- -----广搜 POJ 3278-Catch That Cow
- 广搜 poj 3126
- POJ 3126 广搜
- POJ 2049 广搜
- 广搜poj.3009
- POJ 2243 广搜
- poj-2251 广搜
- poj 3414 广搜
- POJ 3087 广搜
- POJ 1915 双向广搜
- 广搜1 poj 2243
- 推荐:多线程的实现方式及经典示例
- [POJ 3026]Brog Maze[存疑!!!!!]
- 杭电2036 多边形面积求解
- 网络流
- 杭电acm 2037贪心算法
- poj 3278 广搜
- 斯坦福大学机器学习——误差理论(Error Theory)
- 设计神器三剑客!有哪些网站能帮你在线搞定设计?
- 详解Boost库智能指针(shared_ptr && scoped_ptr && weak_ptr )
- 使用相机拍照获取图片后 有时候图像显示旋转
- 阿里巴巴笔试题
- 一个简单的python爬虫程序
- 2012年第三届蓝桥杯(C/C++)预赛题目及个人答案(欢迎指正)
- 解决AlarmManager时间不准