哈尔滨理工大学第七届程序设计竞赛初赛(BFS多队列顺序)

时间:2021-04-19 10:42:01

哈尔滨理工大学第七届程序设计竞赛初赛https://www.nowcoder.com/acm/contest/28#question

D题wa了半天....(真真正正的半天)

其实D题本来就是一个简单的BFS,只不过这个BFS使用时的一些放入队列的顺序比较重要,

这里的顺序是指多个队列放东西的顺序,

简单的BFS因为一般只需要使用一个队列,所以就直接不需要思考地就行(即先放初始位置,然后在队列不为空的条件下,一直放+清除即可),

这道题由于是人的移动和火的移动,所以需要两个队列,这时就会出现两个队列放东西的先后顺序,应该是把全部的火放完之后,再把人的位置放完,然后继续放火的位置.....即每一个队列的放入都必须是放完所有情况,再执行另一个队列的放与除,可以使用一个a.size(),来保证每一步的放都很彻底

哈尔滨理工大学第七届程序设计竞赛初赛(BFS多队列顺序)

哈尔滨理工大学第七届程序设计竞赛初赛(BFS多队列顺序)