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)的主要内容,如果未能解决你的问题,请参考以下文章