POJ3669解题报告(bfs)

Posted MekakuCityActor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ3669解题报告(bfs)相关的知识,希望对你有一定的参考价值。

POJ3669http://poj.org/problem?id=3669

很明显是一道bfs的题目

由于陨石的降临具有时刻性,所以地图是随时间变化的,

所以可以使用结构体来存储陨石下落的时刻以及位置以便更新地图然后预处理出安全位置(把会被轰炸的区域设置为2,把不会被轰炸的区域设置为1)

由于陨石的轰炸不具有蔓延性(如果是火灾的蔓延则具有蔓延性),所以可以直接利用for循环更新地图,而人的移动具有蔓延性(即多方向延伸),所以需要用队列靠bfs更新)

接下来就是bfs操作

1、先把起点放进队列que,

2、然后在bfs中用一个while(!que.empty)来维持搜索

3、然后先通过时间判断是否开始轰炸更新地图(把轰炸区域设置为0),

4、在引入时间轴之后,为了在时间更新之前,把每一步的操作全部遍历,引入que.size()

5、再通过que.front();que.pop()读取并更新队列元素,并把合法的点(非“0”点)加入到队列,

6、此时别忘了把放入队列的点也设置为0,从而避免走回头路,

7、最后更新时间

 

以上是关于POJ3669解题报告(bfs)的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1915(BFS_D题)解题报告

ZOJ 1709(BFS_A题)解题报告

捕牛记(1503)解题报告(bfs)

POJ 1046 Color Me Less解题报告

CodeForces 689B(BFS_B题)解题报告

poj3274解题报告