POJ3278 Catch That Cow 简单BFS
2015-12-14 08:28
253 查看
题解:
简单的BFS,就不说什么了,唯一注意的是要判断是不是越界了
代码
#include <cstdio> #include <queue> #include <cstring> #include <iostream> #include <cstdlib> #include <algorithm> #include <vector> #include <map> #include <string> #include <set> #include <ctime> #include <cmath> #include <cctype> using namespace std; #define MAX 100000 #define LL long long int cas=1,T; struct Node { int temp; int step; }; queue<Node> que; int vis[100000+10]; bool check(int n) { if (n<0 || n>100000 ) return true; else if (vis ) return true; return false; } int main() { int n,k; scanf("%d%d",&n,&k); if (n>=k) printf("%d\n",n-k); else { Node q; q.temp=n; q.step=0; que.push(q); int flag = 0; while (!que.empty()) { Node t = que.front(); que.pop(); if (t.temp==k) { flag = 1; printf("%d\n",t.step); break; } for (int i = 0;i<3;i++) { Node a= t; if (i==0) { a.temp--; if (check(a.temp)) continue; a.step++; que.push(a); vis[a.temp]=1; } if (i==1) { a.temp++; if (check(a.temp)) continue; a.step++; que.push(a); vis[a.temp]=1; } if (i==2) { a.temp = a.temp *2; if (check(a.temp)) continue; a.step++; que.push(a); vis[a.temp]=1; } } } if (!flag) printf("-1\n"); memset(vis,0,sizeof(vis)); } //freopen("in","r",stdin); //scanf("%d",&T); //printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC); return 0; }
题目
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit
Status
Practice
POJ 3278
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
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
4
相关文章推荐
- 什么是设计模式
- centos 安装 使用本地图像文件来安装网络安装
- 重写和重载的区别
- 【转】Bash脚本实现批量作业并行化
- 向右滑动返回上一页
- jQuery点击按钮弹出遮罩层且内容居中特效
- 承担责任
- HDU 4544 湫湫系列故事——消灭兔子
- 学习算法 - 表指针实现~ C++
- Longest Substring Without Repeating Characters
- CMD经常使用的命令
- 使用 netcat [nc] 命令对 Linux 和 Unix 进行端口扫描
- DVWA系列之12 利用Burpsuite进行暴力破解
- DVWA系列之12 利用Burpsuite进行暴力破解
- jquery实现倒计时效果
- 上周热点回顾(12.7-12.13)
- Free statistics e-books for download
- 【项目实战】---需求分析+表关系分析
- SSH网上商城---需求分析+表关系分析
- Objc将数据写入iOS真机的plist文件中