CF1365D Solve The Maze

题目描述

给出一个 $n$ 行 $m$ 列的网格,每个格子上有四种情况: - `.` 表示这个格子是空地。 - `#` 表示这个格子是墙。 - `G` 表示这个格子是好人。 - `B` 表示这个格子是坏人。 `G`,`B`格子都可以认为是空地。 你需要判断能否 `.` 格子上放任意数量的墙,保证所有好人可以通过在空地间移动到达点 $(n,m)$ 而所有坏人都不行。

输入格式

**本题有多组数据** 第一行有一个正整数 $T$,表示有 $T$ 组数据。 每组数据的第一行有两个正整数 $n, m$,表示网格图的行数和列数。 之后 $n$ 行,每行一个长度为 $m$ 的字符串,描述了这张网格图。 保证 $1\le t\le100$,$1\le n, m\le50$。

输出格式

每组数据输出一行 `yes` 或 `no`,大小写任意。

说明/提示

For the first and second test cases, all conditions are already satisfied. For the third test case, there is only one empty cell $ (2,2) $ , and if it is replaced with a wall then the good person at $ (1,2) $ will not be able to escape. For the fourth test case, the good person at $ (1,1) $ cannot escape. For the fifth test case, Vivek can block the cells $ (2,3) $ and $ (2,2) $ . For the last test case, Vivek can block the destination cell $ (2, 2) $ .