题目大意:
在一个 n ∗ m n * m n∗m 的矩阵中,有空地、坏人、好人和墙。你可以将空地变成墙来堵住坏人。 ( n , m ) (n, m) (n,m)为出口,是否存在一个方案使得矩阵中所有好人能够走到出口,而所有坏人不能通过出口,相应的输出 Y e s Yes Yes 和 N o No No。
思路:
1.预处理:如果坏人和好人相邻,那么坏人一定可以走到隔壁好人,再通过好人的路径走到终点,所以不符合, 输出 N o No No;
如果当前方格为坏人,我们只有将他四周都堵住,他才能不会走到出口, 即将周围空地变成墙。
2.试想一下,如何挨个判断好人是否能走到出口,是不是太麻烦了,那么反过来想,判断出口 ( n , m ) (n, m) (n,m)能走到哪些好人方格则只用做一次 b f s bfs bfs或者