bfs
u013330981
这个作者很懒,什么都没留下…
展开
-
HDU 1312 BFS裸题
今天刚学习了广度优先搜索bfs,利用队列来维护。 首先讲初始状态加入队列,此后不断取出队首元素,判断是否满足搜索结束条件(到达终点等),若不满足,在给定的4个或8个方向进行搜索,并且要注意越界、是否已经访问、是否允许访问等约束条件,若满足,则将该点加入队列,并且改变标记距离的数组的值。当队列为空或到达终点时搜索结束。includeincludedefine MAX 20define INF 10原创 2015-08-08 11:15:42 · 434 阅读 · 0 评论 -
HDU1253 胜利大逃亡 BFS
HDU1253 胜利大逃亡题意: 在一个三维的房间里找到距离出口的最短路径,比较最短路径花的时间和魔王回来的时间 T,若小于等于T,则出逃成功。起点坐标为(0,0,0),终点坐标为(a-1, b-1, c-1),地图中0为通路,1为墙。 思路: 典型的BFS,记录的数组从常见的二维扩充到了三维。依然使用队列维护,把初始状态加入队列,修改dis[][][]数组的值,取出队首元素,让元原创 2015-08-08 13:53:58 · 330 阅读 · 0 评论 -
HDU 1026 Ignatius and the Princess I
HDU 1026 Ignatius and the Princess I依然是BFS的题目,这次不同的是需要把路径进行记录。计算最短路径的值跟裸题一样,就不重复了,主要的不同是用pre数组把每个点的前一个元素记录下来,最后用迭代的方式把路径输出。#include<cstdio> #include<queue> #include<cstring> #define INF 10000000 using原创 2015-08-15 18:05:28 · 262 阅读 · 0 评论 -
HDU 1429 胜利大逃亡(续)
做了一些关于BFS的题目,每个题目的描述不一样,但是特点都是移动时状态的改变。这道题主要就是找到最短路径上的锁的钥匙,解锁并出逃。当前是否拥有特定锁的钥匙的状态可以用二进制压缩的方法记录。初次接触状态压缩,对它的原理还有待进一步的了解,现在只是模仿大神的方法试敲。ps:这道题之前一直CE,原因是命名空间中的next关键字和我自己定义的变量冲突,浪费了不少时间,下次切记避免这种问题。 http://原创 2015-08-20 14:29:08 · 305 阅读 · 0 评论