Catch That Cow
来源:互联网 发布:81端口活跃ip段 编辑:程序博客网 时间:2024/06/03 21:22
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.
Example Input
5 17
Example Output
4
一道很纯粹的BFS,三个方向,可是,,,做这道题的时候,我RE了八次啊QAQ(哭死,原因是没控制好范围,越界了,,,
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 1e5 + 3;int n, k;struct node{ int i, step;};int vis[N];int BFS(int x){ queue<node> q; struct node t; t.i = x; t.step = 0; vis[x] = 1; q.push(t); while(!q.empty()) { t = q.front(); q.pop(); if(t.i == k) return t.step; struct node u; u.i = t.i + 1; u.step = t.step + 1; if(!vis[u.i]) { q.push(u); vis[u.i] = 1; } u.i = t.i - 1; u.step = t.step + 1; if(u.i >= 0 && !vis[u.i]) //控制下标非负 { q.push(u); vis[u.i] = 1; } u.i = t.i * 2; //下标乘二,很容易越界 u.step = t.step + 1; if(u.i <= N && !vis[u.i]) //控制范围 { q.push(u); vis[u.i] = 1; } }}int main(){ memset(vis, 0, sizeof(vis)); scanf("%d%d", &n, &k); if(n > k) printf("%d", n-k); else printf("%d", BFS(n)); return 0;}
阅读全文
0 0
- POJ3278 Catch That Cow
- Catch That Cow
- Catch That Cow
- poj3278 Catch That Cow
- 3278. Catch That Cow
- 【HDU2717】-Catch that cow
- Catch That Cow
- F - Catch That Cow
- poj3278 - Catch That Cow
- HDOJ Catch That Cow
- 2717Catch That Cow
- POJ3278 Catch That Cow
- 3278Catch That Cow
- Catch That Cow(bfs)
- Catch that cow (H2717)
- POJ3278--Catch That Cow
- Catch That Cow
- Catch That Cow+BFS
- 设计模式之 观察者模式
- 洛谷 P3825 游戏[NOI 2017] (2-SAT)
- Django学习笔记(二)
- 22、栈的压入、弹出序列
- 深度学习笔记---ReL解决梯度消失
- Catch That Cow
- ?NullPointerException
- Linux进程端口,防火墙端口管理
- 13muduo_base库源码分析(四)
- JSP之自定义标签的执行过程
- CSS基础试题
- POJ 3281 Dining(最大流)
- 二分查找
- 使用Afl-fuzz (American Fuzzy Lop) 进行fuzzing测试(二)——详细使用说明(README.txt)