bfs小结(持续更新中)

6 篇文章 0 订阅

1:hdu1026  Ignatius and the Princess I

http://acm.hdu.edu.cn/showproblem.php?pid=1026

     求从点(0,0)到(n-1, m-1)所花费的最小时间,其中.为通路,x为障碍物,n表示打怪所需要的时间。我们用优先队列处理来扩展节点。先到达终点所需要的时间为最少。没有什么其他不同,只是平时用队列扩展改为优先队列或最小堆即可。还有就是打印路径,我们队每个点记录其父节点,然后递归输出路径即可(但其中需要注意的是由于要输出每一秒都在做什么事,对于打怪时,我们可以采用递归n次来指向其本身递归n次的小技巧,或者直接定义一个全局变量,递归到最底层时我们不断的累加器需要的时间。)

具体代码:http://blog.csdn.net/robotcator/article/details/22419421

仅供参考,各位acmer fighting

 

2:hdu1175 连连看

http://acm.hdu.edu.cn/showproblem.php?pid=1175

       一直往一个方向且限制拐弯次数,我们只需用一个结构体记录节点及其拐弯次数即可,此题去年暑假就做了,一直做不出来,所以对搜索都很后怕,但是这次静下心来写了一次。好不容易过了。我很渣,我更能体会作为一名弱渣要成功是比较困难的事,但是我们也不能放弃,努力就会有成果。即使不能进regional又怎样,我还是要刷题,提高能力。

具体代码:http://blog.csdn.net/robotcator/article/details/22421561

 

3:hdu1548 a strange lift

http://acm.hdu.edu.cn/showproblem.php?pid=1548

简单bfs,只要上和下两个方向。

 

4:poj 1915 Knight Moves

        这个要说一下,第一个双向bfs。题目为按象棋中马步的方式从起点到终点的最短路。双向bfs跟普通的bfs没什么两样,只不过双向bfs是分别逐层从起点和终点扩展(注意要逐层扩展) 当正向扩展出来的节点在逆向已扩展(或者逆向扩展的节点在正向已扩展)那么则停止扩展,已求的最短路。(简单吧,耐心点很好理解的)

具体代码:http://blog.csdn.net/robotcator/article/details/22423759

 

5:hdu 1195  Open the lock http://acm.hdu.edu.cn/showproblem.php?pid=1195

        简单bfs,只是操作很多,操作比较复杂,不过可以复制粘贴。还有判重有两个方法,一个是用四维vis数组,另一个是hash成整数,用vis记录不要重复入队。

具体代码:http://blog.csdn.net/robotcator/article/details/24239083

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值