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. 优先队列Priority Queue和堆Heap

    对COMP20003中的Priority queue部分进行总结.图片来自于COMP20003 queue队列,顾名思义特点先进先出 priority queue优先队列,出来的顺序按照优先级prio ...

  2. Django Models 查询操作

    1.准备数据表: from django.db import models class City(models.Model): name=models.CharField(max_length=32) ...

  3. RabbitMQ之php-amqplib使用

    PHP下使用rabbitmq可以使用第三方类库来实现 技术参考: https://rabbitmq.shujuwajue.com/tutorials_with_php/[1]Hello_World.h ...

  4. HashMap源码解读(jdk1.8)

    1.相关常量 默认初始化容量(大小) static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; 最大容量 static final int M ...

  5. springboot aop 拦截接口执行时间

    /** * @description: 记录接口执行时间日志的记录 * @author: * @create 2018-12-27 16:32 */ @Target(ElementType.METHO ...

  6. SpringBoot配置activemq消息队列

    1.配置pom相关依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...

  7. Fedora 24系统基本命令

    Fedora  24基本命令 一.     DNF软件管理 1.        修改配置:在/etc/dnf/dnf.conf中加入fastestmirror=true.keepcache=true ...

  8. os与sys模块

    os 1.os.pardir #获取当前目录的父目录字符串名:('..') 2.os.mkdir('dirname') #创建单级目录:相当于shell中mkdir dirname 3.os.make ...

  9. 对于BFS的理解和部分例题(

    (图文无关    雾 搜索是一个NOIP当中经常出现的考点,其实搜索换个方式来想也无非就是让电脑来帮你试,最后得到一个结果,当然这么口胡谁都会,那么我们就来看看搜索当中的一个大部分: BFS(广度优先 ...

  10. EnableEurekaServer基本配置

    pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...