题目链接:Catch That Cow

题目大意

FJ丢了一头牛,FJ在数轴上位置为n的点,牛在数轴上位置为k的点。FJ一分钟能进行以下三种操作:前进一个单位,后退一个单位,或者传送到坐标为当前位置两倍的地方。求FJ能找到牛的最短时间。

思路

BFS。在每一个点有三种选择,前进,后退,或者传送。要注意的是,由于有后退的过程,所以可能会造成环,导致队列长度很长就直接MLE了。因此要用一个vis数组来控制不能选择已经去过的地方。

题解

 #include <iostream>
#include <cstring>
#include <queue>
using namespace std; int n, k, ans, vis[];
struct Location
{
int cur; //当前位置坐标
int num; //到达这个点所用的步数
}l; queue<Location> q; int main(int argc, char const *argv[])
{
cin >> n >> k;
l.cur = n;
l.num = ;
q.push(l); //初始位置入队
while(true)
{
if(q.front().cur == k)
{
cout << q.front().num; //到达K,输出
break;
}
if(q.front().cur- >= && vis[q.front().cur-] == ) //判断是否超出范围或者已经走过
{
l.cur = q.front().cur-;
l.num = q.front().num+;
vis[l.cur] = ;
q.push(l); //入队
}
if(q.front().cur+ <= && vis[q.front().cur+] == )
{
l.cur = q.front().cur+;
l.num = q.front().num+;
vis[l.cur] = ;
q.push(l);
}
if(q.front().cur* <= && vis[q.front().cur*] == )
{
l.cur = q.front().cur*;
l.num = q.front().num+;
vis[l.cur] = ;
q.push(l);
}
q.pop();
}
return ;
}

抓住那只牛!Catch That Cow POJ-3278 BFS的更多相关文章

  1. Catch That Cow POJ - 3278 bfs map超时,短路判断顺序。

    题意:可以把n边为n+1,n-1,n*2问从n到k的最少变化次数. 坑:标题写了.有点不会写bfs了... ac代码 #define _CRT_SECURE_NO_WARNINGS #include& ...

  2. catch that cow POJ 3278 搜索

    catch that cow POJ 3278 搜索 题意 原题链接 john想要抓到那只牛,John和牛的位置在数轴上表示为n和k,john有三种移动方式:1. 向前移动一个单位,2. 向后移动一个 ...

  3. (广搜)Catch That Cow -- poj -- 3278

    链接: http://poj.org/problem?id=3278 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6211 ...

  4. Catch That Cow POJ - 3278 [kuangbin带你飞]专题一 简单搜索

    Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. ...

  5. C - Catch That Cow POJ - 3278

    //标准bfs #include <iostream> #include <cstdio> #include <algorithm> #include <cm ...

  6. kuangbin专题 专题一 简单搜索 Catch That Cow POJ - 3278

    题目链接:https://vjudge.net/problem/POJ-3278 题意:人可以左移动一格,右移动一格,或者移动到当前位置两倍下标的格子 思路:把题意的三种情况跑bfs,第一个到达目的地 ...

  7. BZOJ1646: [Usaco2007 Open]Catch That Cow 抓住那只牛

    1646: [Usaco2007 Open]Catch That Cow 抓住那只牛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 634  Solved ...

  8. 2014.6.14模拟赛【bzoj1646】[Usaco2007 Open]Catch That Cow 抓住那只牛

    Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...

  9. BZOJ 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛( BFS )

    BFS... -------------------------------------------------------------------------------------------- ...

  10. 【BZOJ】1646: [Usaco2007 Open]Catch That Cow 抓住那只牛(bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1646 这一题开始想到的是dfs啊,,但是本机测样例都已经re了... 那么考虑bfs...很巧妙? ...

随机推荐

  1. HBase 系列(十一)—— Spring/Spring Boot + Mybatis + Phoenix 整合

    一.前言 使用 Spring+Mybatis 操作 Phoenix 和操作其他的关系型数据库(如 Mysql,Oracle)在配置上是基本相同的,下面会分别给出 Spring/Spring Boot ...

  2. Comupter Tools 清单------包含但不限于此

  3. Spring学习之旅(十三)--使用NoSQL数据库

    除了关系型数据库之外,现在还有一种 NoSQL 数据库非常流行,而 Spring 自然也没有放过对它的支持. NoSQL 数据库有很多种,如: MongoDBGenericJackson2JsonRe ...

  4. Spring学习之旅(五)--AOP

    什么是 AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是 OOP(Object-Oriented Programing,面向对象编程)的补充和完善. OO ...

  5. Django之静态文件,中间件,admin后台管理

    静态文件 静态文件的使用 在 网页使用的css文件,js文件和图片等叫做静态文件.1)在项目下新建静态文件夹 static. 2) 配置静态文件所在的物理目录.Settings.py STATIC_U ...

  6. Leetcode之二分法专题-367. 有效的完全平方数(Valid Perfect Square)

    Leetcode之二分法专题-367. 有效的完全平方数(Valid Perfect Square) 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 ...

  7. MSIL实用指南-类相关生成

    一.创建class用MethodBuilder的DefineType方法,可以指定父类,得到一个TypeBuilder对象. 二.实现继承接口用TypeBuilder的AddInterfaceImpl ...

  8. 第10章 文档对象模型DOM 10.2 Document类型

    Document 类型 JavaScript 通过 Document 类型表示文档.在浏览器中, document 对象是 HTMLDocument (继承自 Document 类型)的一个实例,表示 ...

  9. NLP(十八) 一维卷积网络IMDB情感分析

    准备 Keras的IMDB数据集,包含一个词集和对应的情感标签 import pandas as pd from keras.preprocessing import sequence from ke ...

  10. C++多例模式下对Instance的使用

    最近工作中遇到这样一个问题: 之前N年,公司用的都是一块CPU对应一块物理板,也就是,一块物理板只要一个实例化就可以了----俗称单例模式. 现在突然要一块CPU对应多块物理板,妥妥的多例模式啊.但是 ...