标题有点大,但是事实上我也确实是想弄一个比较大整理性文章。这些文章的绝大多数我不准备写代码了,但强迫自己不看题解自己去想那些题目怎么写,然后把相类似的题目放在一起用来帮助我分析,并且将知识点串起来复习。题目大多数来自于算法入门经典系列,CODEVS,BZOJ,XJOI,HUSTOJ,等。
Vjudge
- 大火蔓延的迷宫(Fire!,UVa 11624) 算法入门经典训练指南P307.
Fire!
Description:
一个平面迷宫中有一个人,迷宫中有些点起火了,火和人每个单位时间只能向相邻的格子移动,其中有一些空间被墙壁占据,问这个人在不背或烧到的情况下,离开迷宫的最快时间。
题解:
这个题目因为这个火可以动,这样的话我们所能够走的地方就受到了限制,我们每次走到一个点,不但要考虑到那个点最短时间而且同时还要考虑那个点之前是否被火烧过。
这样似乎是比较麻烦,那么我们考虑首先预处理出从每个点到最近的火的位置,恩,这样的话我们最后找走出迷宫的最短路就除了考虑是否有更短的点以外还要考虑是否有火在我到之前到。
Hint:我们在初始的时候将所有的点一次性加入队列
- escape