这是做的第一道BFS,很基础很简单的题目

广度优先搜索算法如下:(用QUEUE)

(1) 把初始节点S0放入Open表中;

(2) 如果Open表为空,则问题无解,失败

退出;

(3) 把Open表的第一个节点取出放入

Closed表,并记该节点为n;

(4) 考察节点n是否为目标节点。若是,

则得到问题的解,成功退出;

(5) 若节点n不可扩展,则转第(2)步;

(6) 扩展节点n,将其不在Closed表和

Open表中的子节点(判重)放入Open表的尾部

,并为每一个子节点设置指向父节点的指针(

或记录节点的层次),然后转第(2)步。

一层一层的往深了的搜索,直到遇到所求解。那么深度就是最短步数,还有要注意判重,其中visited数组就起到了判重的作用。

#include

#include

#include

#include

using namespace std;

int n, k;

const int maxn = ;

int visited[maxn + ]; //判重标记

struct Step

{

int x;

int steps;

Step(int xx, int s):x(xx), steps(s){}

};

queue q;

int main(void)

{

scanf("%d%d", &n, &k);

memset(visited, , sizeof(visited));

q.push(Step(n, ));

visited[n] = ;

while(!q.empty())

{

Step s = q.front();

if(s.x == k)

{//找到目标

printf("%d\n", s.steps);

return ;

}

else

{

if(s.x - >= && !visited[s.x-])

{

q.push(Step(s.x-, s.steps+));

visited[s.x-] = ;

}

if(s.x + <= maxn && !visited[s.x+])

{

q.push(Step(s.x+, s.steps+));

visited[s.x+] = ;

}

if(s.x* <= maxn && !visited[s.x*])

{

q.push(Step(s.x*, s.steps+));

visited[s.x*] = ;

}

q.pop();

}

}

return ;

}

代码君

bfs—Catch That Cow—poj3278

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 87152   Accepted: 27344 ...

poj 3278 catch that cow BFS&lpar;基础水&rpar;

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 61826   Accepted: 19329 ...

BFS POJ 3278 Catch That Cow

题目传送门 /* BFS简单题:考虑x-1,x+1,x*2三种情况,bfs队列练练手 */ #include #include #inc ...

POJ 3278 Catch That Cow&lpar;BFS&comma;板子题&rpar;

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 88732   Accepted: 27795 ...

POJ 3278 Catch That Cow(bfs)

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

poj 3278 Catch That Cow &lpar;bfs搜索)

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 46715   Accepted: 14673 ...

POJ 3278 Catch That Cow&lbrack;BFS&plus;队列&plus;剪枝&rsqb;

第一篇博客,格式惨不忍睹.首先感谢一下鼓励我写博客的大佬@Titordong其次就是感谢一群大佬激励我不断前行@Chunibyo@Tiancfq因为室友tanty强烈要求出现,附上他的名字. Catc ...

POJ - 3278 Catch That Cow BFS求线性双向最短路径

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

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 ...

随机推荐

jQuery初探 jQuery选取和操纵元素的特点

jQuery初探 jQuery选取和操纵元素的特点 JavaScript选取元素 先来看看不用jQuery的时候我们是怎么处理元素选取的. JavaScript选取元素的时候,可以根据id获取元素,当 ...

【BZOJ 3053】The Closest M Points

KDTree模板,在m维空间中找最近的k个点,用的是欧几里德距离. 理解了好久,昨晚始终不明白那些“估价函数”,后来才知道分情况讨论,≤k还是=k,在当前这一维度距离过线还是不过线,过线则要继续搜索另 ...

hdu4982 Goffi and Squary Partition (DFS解法)

BestCoder Round #6 B http://acm.hdu.edu.cn/showproblem.php?pid=4982 Goffi and Squary Partition Time ...

NSUserDefaults简介及使用

NSUserDefaults类提供了一个与默认系统进行交互的编程接口.NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,配置数据等等.默认系统允许应用程序自定义它的行为去迎合用户 ...

linux桌面应用开发之折腾

1 起因 需要开发一个wifi定位的应用,最先在android下搞,后来因为多网卡的原因要换平台,经历了windows,最终选择用kaili linux.debian系的linux,开发桌面应用怎么办 ...

夜未央Test1

积木游戏(block.pas)   [题目描述] 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,最高的积木的最终需要达到h. 在搭建开始之前,没有任何积木(可以看成n ...

ETHERNET帧结构

以太网帧http://blog.csdn.net/guoshaobei/article/details/4768514 Ethernet的帧格式 (转)  http://jiangqiaosun.bl ...

git 恢复本地误删文件

git status git reset HEAD 路径(git status 会显示的路径) git checkout 路径

PuTTY&plus;Xming实现X11的ssh转发

1 需求分析 有些Linux程序还是不能完全离开窗口环境,或者说离开后操作不方便.其中Oracle就是这样一个程序,其工具程序大多数能够在纯命令行静默执行,如 OCI,DBCA,NetCA等,但是工作 ...

linux诡异的硬盘不足

phpmyadmin页面登录不进去,ftp也连不上.而服务端的service都开着的.直觉是看一下硬盘使用情况. df -TH 发现可用空间几乎为0 但是查看各个目录使用情况: du -sh /* | ...

c语言编辑87152,POJ 3287 (基础BFS) Catch That Cow相关推荐

  1. [VJ][bfs]Catch That Cow

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

  2. POJ 3278 / hdu 2717 Catch That Cow (广搜)

    POJ 3278 HDU 2717 广搜题,用一个数组标记就可以过,不标记的话会超内存. 另外,poj的数据要比hdu强一些,比如0 100,这种数据.不特判的话会RE.不过如果不特判,在poj上用C ...

  3. POJ 3287 Catch That Cow(bfs)

          看懂意思就很简单了,给你一个数,每次只能加一或者减一或者乘2,问最少几次才能变成另一个数,就是一个简单的bfs过程,看代码吧. AC代码: #include <iostream> ...

  4. 编程c语言零基础知识,零基础学习C语言都需要掌握哪些基础知识

    随着互联网的不断发展,越来越多的人都在学习互联网软件编程开发语言,而今天我们就一起来了解一下,零基础学习C语言都需要掌握哪些基础知识. 无论学习哪门语言先应该了解一下自己所学语言的背景,也可以说它的发 ...

  5. python语言可以处理数据文件吗_Python语言读取Marc后处理文件基础知识.pdf

    Python语言读取Marc后处理文件基础知识 基于 python 的焊接后处理 知识要点:  Python 语言  Python 模块功能  PyPost 后处理模块  PyPost 模块函 ...

  6. 速卖通产品编辑中使用html,速卖通多语言编辑发布产品怎么做?

    速卖通怎么发布产品?速卖通主要是针对外国买家,所以官方特地研发上线了一个多语言编辑速卖通产品发布的功能,快速解决速卖通怎么发布产品的问题,下面搜一客小编跟大家介绍一下怎么使用发布产品多语言编辑速卖通产 ...

  7. r语言 编辑 d3.js_d3.js的语言介绍

    r语言 编辑 d3.js by Matt Oxley 由马特·奥克斯利(Matt Oxley) d3.js的语言介绍 (A linguistic introduction to d3.js) 如何从一 ...

  8. c语言fac函数求n的阶乘,急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。...

    急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入.要求设计一个函数fac(n)求某个正整数n 的阶乘. 來源:互聯網  2010-05-29 01:44:10  評論 分類: 電 ...

  9. c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc

    疥详刁呆害獭荆羞哈沮蒜赫夜内淮牺彻蔼纤凤虹锥硝够唬古进淋牡振拘铅笺元扳与醒靳蹋销钡胶致石衙钦目妈而炸赚鹤邓穷窍瘴笼旬房殆查恨蠢煌沧祥斥瞩骤敌晤屏莲匆目穷妖暗屹码冬息摊挎傍啡坟范给羹哥皱做斋绥甭焕睫苍苫 ...

最新文章

  1. 【图论】用一道题从本质上讲清楚Floyd算法
  2. NC:自体免疫水泡皮肤病中鉴定基因与微生物组互作(微生物组关联分析MWAS)
  3. python3和pip3安装和问题解决
  4. str字符串 encoding( ) 方法
  5. 浅谈RTS游戏网络同步:3种同步机制模式的实现
  6. 控件UI性能调优 -- SizeChanged不是万能的
  7. mysql rpl_MySQL管理工具MySQL Utilities — mysqlrplcheck(44)
  8. Linux中ls -l(ll)返回结果中的文件访问权限-rw-r--rw-
  9. AcWing 1952. 金发姑娘和 N 头牛(离散化+差分)
  10. 章节3.1和3.2----栈的表示、实现和应用
  11. delphi官方iso下载地址
  12. AMOS分析技术:软件安装及菜单功能介绍;这次是视频教程
  13. centos7 yum安装时遇到错误:Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
  14. Linux 下文件和目录的特点
  15. 如何使用Zend Expressive建立NASA照片库
  16. 什么是 IP 欺骗?
  17. 投影法字符分割matlab,利用投影法进行字符分割
  18. NLP之语义自动匹配emoji
  19. 2021年11月23日无人机与NOMA技术结合论文的日常阅读
  20. leetcode: 70. Climbing Stairs

热门文章

  1. Golang 源码安装方式 完整教程
  2. 自动驾驶的基本过程(三):线控
  3. 100314.间谍网络
  4. 计算机组成原理学习笔记之机器字长、存储字长和指令字长
  5. c++ const 用法
  6. 三菱数控CNC学习路线图
  7. Mac系统home目录权限修改
  8. egg.js学习笔记
  9. [幻灯片]04-系统用例图和用例规约-软件需求设计方法学全程实例剖析
  10. echarts饼图不同样式