BFS

这道题 觉得比较适合BFS新手入门写,也许大家都以为最入门 的BFS题是在二维图上搜索,但是这道题是线性搜索,更加简单

POJ 3278

                                          Catch That Cow
Time Limit: 2000MS   Memory Limit: 65536K
Total Submissions: 133836   Accepted: 41405

描述。

农夫约翰被告知一头逃亡母牛的位置,他想马上抓住她。他从数字行上的点N(0≤N≤100,000)开始,牛在同一数字行上的点K(0≤K≤100,000)处。农民约翰有两种交通方式:步行和远距运输。

*行走:FJ可以在一分钟内从任意X点移动到X-1或X+1点。
*传送:FJ可以在一分钟内从任意X点移动到2×X点。

如果母牛没有意识到自己的追求,根本不动,那么农夫约翰要多久才能把它取回来呢?

输入。

第1行:两个空格分隔的整数:N和K。
输出量。

第一行:农民约翰抓住逃亡的母牛所需的最少的时间,以分钟为单位。

Sample Input

5 17

Sample Output


Hint

农民约翰到达逃亡奶牛的最快方法是沿着以下路径移动:5-10-9-18-17,需要4分钟。
解释:其实就是从a点进行三个操作,最少多少步到达b点
 
注意:1  如果a大于b,只能减
   2  if(next<0 || next>100000) continue;不然会运行时出错

1:队列stl

 int  bfs(int n,int m)
{
int head, next;
q.push(n);
step[n]=;
vis[n]=; while(!q.empty())
{
head=q.front(); for(int i=;i<;i++)
{
if(i==)
{
next=head-;
}
else if(i==)
{
next=head+;
}
else
{
next=head*;
}
if(next< || next>) continue; if(!vis[next])
{
q.push(next);
step[next]=step[head]+;
vis[next]=;
}
if(next==m)
{
return step[next];
}
}
q.pop();
}
}

2:模拟duilie

 int BFS(int n,int m)
{
head=,tail=;
q[head]=n; while()
{
step1=q[head];
for(int i=;i<=;++i)
{
if(i==)
{
step2=step1+;
}
else if(i==)
{
step2=step1-;
}
else if(i==)
{
step2=step1*;
}
if(step2< || step2>) continue;
if(b[step2]==)
{
b[step2]=;
tail++;
q[tail]=step2;
step[step2]=step[step1]+;
}
if(step2==m)
{
return step[step2];
}
}
head++;
}
}

BFS 模拟队列(水题)的更多相关文章

  1. noip模拟赛 水题

    题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌长和宽分别是xi和yi.对于第二副牌的每张牌长和宽分别是aj和bj.第一副牌的第i张牌能覆盖第二副牌的第 ...

  2. Codeforces Round #318 (Div. 2) A Bear and Elections (优先队列模拟,水题)

    优先队列模拟一下就好. #include<bits/stdc++.h> using namespace std; priority_queue<int>q; int main( ...

  3. HDU 5867 Water problem ——(模拟,水题)

    我发这题只是想说明:有时候确实需要用水题来找找自信的~ 代码如下: #include <stdio.h> #include <algorithm> #include <s ...

  4. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  5. poj 1005:I Think I Need a Houseboat(水题,模拟)

    I Think I Need a Houseboat Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 85149   Acce ...

  6. hdu1240 bfs 水题

    原题链接 思路:水题,直接搜 #include "map" #include "queue" #include "math.h" #incl ...

  7. uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列

    题目很简单,给一个队列以及文件的位置,然后一个一个检查,如果第一个是优先级最高的就打印,否则放到队列后面,求所要打印的文件打印需要花费多长时间. 这里我用数组模拟队列实现,考虑到最糟糕的情况,必须把数 ...

  8. Uva 10305 - Ordering Tasks 拓扑排序基础水题 队列和dfs实现

    今天刚学的拓扑排序,大概搞懂后发现这题是赤裸裸的水题. 于是按自己想法敲了一遍,用queue做的,也就是Kahn算法,复杂度o(V+E),调完交上去,WA了... 于是检查了一遍又交了一发,还是WA. ...

  9. POJ 3984 - 迷宫问题 - [BFS水题]

    题目链接:http://poj.org/problem?id=3984 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, ...

随机推荐

  1. javascript错误信息

    ECMA-262 定义了下列 7 种错误类型: TypeError 类型错误 ReferenceError 引用错误 SyntaxError 语法错误 Error 错误 EvalError 全局错误 ...

  2. 利用node.js来实现长连接/聊天(通讯实例)

    首先: 需要在服务器端安装node.js,然后安装express,socket.io这两个模块,并配置好相关的环境变量等. 其次: 服务端代码如下: var app = require('expres ...

  3. 开发中,IDEA常用的快捷键

    Settings文件: Ctrl+Alt+S 搜索文件:Ctrl+Shift+N 全文搜索: Ctrl+Shift+F 全文替换: Ctrl+Shift+R 搜索内容: Ctrl+F 内容替换: Ct ...

  4. iOS CATransition 自定义转场动画

    https://www.jianshu.com/p/39c051cfe7dd CATransition CATransition 是CAAnimation的子类(如下图所示),用于控制器和控制器之间的 ...

  5. 【刷题】【LeetCode】007-整数反转-easy

    [刷题][LeetCode]总 用动画的形式呈现解LeetCode题目的思路 参考链接-空 007-整数反转 方法: 弹出和推入数字 & 溢出前进行检查 思路: 我们可以一次构建反转整数的一位 ...

  6. asp.net获取当前请求的url

    asp.net获取当前请求的url 设当前页完整地址是:http://www.dgshop.com/Home/Manager?id=2&para=ASFDG [1]获取 完整url 代码如下: ...

  7. http请求方式和传递数据类型

    HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则. GET,通过请求URI得到资源 POST,用于添加新的内容 PUT用于修改某个内容 DELETE ...

  8. [Cordova 之 入门篇]

    1. cordova是什么 Apache Cordova是一个开源的移动开发框架.允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 2. 为什么用cordova 基于 ...

  9. react-navigation使用之嵌套和跳转

    1. 新版react-native已经将react-navigation作为官方版本发布,基础Demo可以从官方网站获得,比较困扰的问题是组件的嵌套和第二.第三页面的跳转. 2. 组件嵌套问题: 要在 ...

  10. Java中JSON之全

    1.           在不知道你要转的对象的类型的时候,用com.alibaba.fastjson.JSON.parse();     Object parse = com.alibaba.fas ...