#1298. Problem E.L 型覆盖检查器
Problem E.L 型覆盖检查器
本题中,你需要实现上一题的输出检查器。
给定一个 行 列的网格,行按从上到下的顺序从 到 编号,列按从左到右的顺序从 到 编号。现在有任意多个 L 型(如下图所示),你已经使用了一些 L 型覆盖网格,但你不知道你是否正确地覆盖了网格。
你的覆盖方案可以表示为 行长度为 的字符串。字符串中仅包含 UDLRC.
六种字符,第 行第 个字符表示第 行第 列网格的覆盖情况。字符 .
表示单元格没有被覆盖,如果覆盖方案中只有一个.
,且这个 .
位于第 行第 列,则这个覆盖方案是正确的,否则是错误的。字符 \t{C} 表示 L 型的中心(即上图中的 L 型的左下角)。字符 \t{UDLR} 分别表示这个单元格的\textbf{上、下、左、右}单元格是覆盖这一单元格的 L 型的中心。如果所有 L 型都是完整的,且每个单元格都仅被一个 L 型覆盖,则这个覆盖方案是正确的,否则是错误的。
给出一些覆盖方案,请判断这些方案是否是正确的。
Input
第一行一个整数 (),表示测试数据组数。
对于每组数据,第一行两个整数 (),表示网格大小。
接下来 行,每行一个长为 的字符串,字符串仅由 UDLRC.
六种字符组成。第 行字符串的第 个字符表示网格中第 行第 列的覆盖情况。
保证所有测试数据 之和不超过 。
Output
对于每组数据,如果覆盖方案正确,输出一行 Yes
,否则输出 No
。
2
4 4
CLD.
UDCL
DCLD
CLRC
2 3
DRC
CLU
Yes
No