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

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

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

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

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

退出;

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

Closed表,并记该节点为n;

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

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

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

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

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

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

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

8ed761148b6a83396edb08af85dd4235.png

一层一层的往深了的搜索,直到遇到所求解。那么深度就是最短步数,还有要注意判重,其中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 /* | ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值