#P0991. 迷宫逃生
迷宫逃生
题目描述
在一个 行 列的网格迷宫中有以下元素:
- :人的起点(唯一)。
- :安全出口(唯一)。
- :墙壁,人和火均无法穿过。
- :空地。
- :火源(唯一)。
每分钟,事件按以下规则发展:
- 火的蔓延:火会向上下左右四个方向蔓延到相邻的空地(火无法穿过墙壁)。
- 人的移动:人可以从当前格子向上下左右四个方向移动一格。人不能移动到墙壁、当前有火的格子,或者在本分钟即将被火烧到的格子(即如果某一格子在时刻 被火烧到,人不能在时刻 踏入该格,否则会被烧死)。
人可以停留在起点等待,但如果火蔓延到起点,且人未能及时离开,则同样会死亡。
人和火均不能离开网格边界。
请判断人是否能在火烧到自己之前安全到达出口。
输入格式
第一行包含一个整数 (),表示测试数据组数。
对于每组数据:
第一行包含两个整数 和 (),表示迷宫的行数和列数。
接下来 行,每行一个长度为 的字符串,由字符 、、、、 组成,保证 、 和 均唯一。
输出格式
对于每组数据,输出一行,若能够安全逃生则输出 ,否则输出 (不区分大小写)。
样例
2
3 5
S...E
.....
.F...
3 3
S..
.F.
..E
YES
NO
样例解释
第一组数据:火源位于 ,蔓延到出口 需要 分钟。人从起点 向右直行只需 分钟即可抵达出口,不会被火烧到,可以安全逃生。
第二组数据:起点 ,火源 ,出口 。第 分钟火会蔓延到 和 ,人无法离开起点;第 分钟火烧到起点,人无法逃生。
数据范围
对于 的数据,,。