P9878 [EC Final 2021] Check Pattern is Bad
题目描述
庞教授得到一个 $n \times m$ 的棋盘。有些格子被涂成黑色,有些被涂成白色,其他的则没有颜色。
庞教授不喜欢“棋盘格”图案,所以他想要给所有未上色的格子上色,使得棋盘上没有棋盘格图案。
如果 $4$ 个格子形成一个 $2 \times 2$ 的正方形,并且它们的颜色是以下两种方式之一,则称它们具有棋盘格图案:
```plain
BW
WB
```
```plain
WB
BW
```
这里 `W`(在切瓦语中为“wakuda”)表示格子被涂成黑色,`B`(在科西嘉语中为“biancu”)表示格子被涂成白色。
输入格式
第一行包含一个整数 $T$ $(1 \leq T \leq 10^4)$,表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 100$),表示棋盘的尺寸。
接下来的 $n$ 行中的每一行包含 $m$ 个字符。第 $i$ 行的第 $j$ 个字符表示棋盘第 $i$ 行第 $j$ 列的格子的状态。若格子被涂成黑色,则字符为 `W`;若格子被涂成白色,则字符为 `B`;若格子未上色,则字符为 `?`。
保证所有测试用例中 $nm$ 的总和不超过 $10^6$。
输出格式
对于每个测试用例,如果不能给所有未上色的格子上色以使棋盘上没有棋盘格图案,则输出一行 `NO`。
否则,输出一行 `YES`。在接下来的 $n$ 行中,输出与输入格式相同的涂色棋盘。输出的棋盘应满足以下条件:
- 没有任何棋盘格图案。
- 仅由 `B` 和 `W` 组成。
- 如果输入中某个格子已经上色,则在输出中不能更改其颜色。
如果有多个解决方案,输出其中任意一个。
说明/提示
题面翻译由 ChatGPT-4o 提供。