题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2717

Catch That Cow

Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12615    Accepted Submission(s):
3902

Problem 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

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.

 
题目大意:在一条笔直的道路上,有一个农夫在A位置,一头牛在B位置,农夫一次可以搜索三个位置(例如农夫在x位置,他可以搜索x-1、x+1、x*2)问农夫至少需要几步能够找到牛。
解题思路: 用广搜 ,定义一个位置数组,每次搜索三个位置即可。
AC代码:
 #include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>
using namespace std;
int f[]; //记录步数
void bfs(int n,int k)
{
int a[]; //位置数组
memset(f,,sizeof(f));
queue <int > q;
q.push(n);
f[q.front()] = ;
if (n == k)
return ;
while (!q.empty())
{
int t = q.front();
int x = f[t];
a[] = t-; //三个位置
a[] = t+;
a[] = t*;
for (int i = ; i < ; i ++)
{
if (a[i] >= && a[i] < && f[a[i]]==) //注意这里的边界值
{
q.push(a[i]);
f[a[i]] = x+; //在上一步的基础上加1
}
if (a[i] == k)
return ;
}
q.pop();
}
}
int main ()
{
int i;
int n,k;
while (~scanf("%d%d",&n,&k))
{
dfs(n,k);
printf("%d\n",f[k]-); //减去农夫本来在的位置那一步
}
return ;
}

HDU 2717 Catch That Cow (bfs)的更多相关文章

  1. HDU 2717 Catch That Cow(BFS)

    Catch That Cow Farmer John has been informed of the location of a fugitive cow and wants to catch he ...

  2. 题解报告:hdu 2717 Catch That Cow(bfs)

    Problem Description Farmer John has been informed of the location of a fugitive cow and wants to cat ...

  3. HDU 2717 Catch That Cow(常规bfs)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2717 Catch That Cow Time Limit: 5000/2000 MS (Java/Oth ...

  4. hdu 2717:Catch That Cow(bfs广搜,经典题,一维数组搜索)

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. hdu 2717 Catch That Cow(BFS,剪枝)

    题目 #include<stdio.h> #include<string.h> #include<queue> #include<algorithm> ...

  6. poj 3278(hdu 2717) Catch That Cow(bfs)

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  7. POJ 3278 Catch That Cow(bfs)

    传送门 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 80273   Accepted: 25 ...

  8. Catch That Cow(BFS)

    Catch That Cow Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. POJ3279 Catch That Cow(BFS)

    本文来源于:http://blog.csdn.net/svitter 意甲冠军:给你一个数字n, 一个数字k.分别代表主人的位置和奶牛的位置,主任能够移动的方案有x+1, x-1, 2*x.求主人找到 ...

随机推荐

  1. Populating Tree Item With Record Group In Oracle Forms

    The below plsql program unit could be used in a WHEN-NEW-FORM-INSTANCE trigger to initially populate ...

  2. c# 与java之间的简单区别

    C#中类的继承用通过冒号:实现,在Java中用extends C#中实现接口通过冒号:实现,在Java中用implements C#中密封类用sealed实现,在Java中用final C#中常数用c ...

  3. Scrum Meeting 6-20151208

    任务安排 姓名 今日任务 明日任务 困难 董元财 修复app特定情况下崩溃 服务器购买记录接口 无 胡亚坤 聊天界面优化 发布记录和购买记录 无 刘猛 请假(生病了) 完成Scrum Meeting ...

  4. 客户端判断是否为IE9以上版本

    function detectBrowser() { var browser = navigator.appName if(navigator.userAgent.indexOf("MSIE ...

  5. OneSQL的docker之旅

      百度盘下载地址: http://pan.baidu.com/s/1v9GWA   OneSQL Docker使用方法:  1. 解压    tar zxvf OneSql-Docker-5.6.2 ...

  6. [转]我为什么要学习python

    我为什么要学习python   引言:学习python近两年,谈谈我对于python的一点小理解,也从一些方面谈谈自己微薄的想法,也就是我为什么学习python 这里我不讨论python的一些有用的库 ...

  7. rebuild new environment for DW step

    Steps to rebuild PPE environment: (CTS) 1, Disable both CTS Daily Job (Daily) and CTS Daily Job (Sta ...

  8. iOS中属性与成员变量的区别

    一.类Class中的属性property 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interfa ...

  9. sql数剧操作语言

    结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域, 得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件 ...

  10. 51nod 1134 最长递增子序列

    题目链接:51nod 1134 最长递增子序列 #include<cstdio> #include<cstring> #include<algorithm> usi ...