#P9878. [EC Final 2021] Check Pattern is Bad

[EC Final 2021] Check Pattern is Bad

Description

庞教授得到一个 n×mn \times m 的棋盘。有些格子被涂成黑色,有些被涂成白色,其他的则没有颜色。

庞教授不喜欢“棋盘格”图案,所以他想要给所有未上色的格子上色,使得棋盘上没有棋盘格图案。

如果 44 个格子形成一个 2×22 \times 2 的正方形,并且它们的颜色是以下两种方式之一,则称它们具有棋盘格图案:

BW
WB
WB
BW

这里 W(在切瓦语中为“wakuda”)表示格子被涂成黑色,B(在科西嘉语中为“biancu”)表示格子被涂成白色。

Input Format

第一行包含一个整数 TT (1T104)(1 \leq T \leq 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnmm (1n,m1001 \le n, m \le 100),表示棋盘的尺寸。

接下来的 nn 行中的每一行包含 mm 个字符。第 ii 行的第 jj 个字符表示棋盘第 ii 行第 jj 列的格子的状态。若格子被涂成黑色,则字符为 W;若格子被涂成白色,则字符为 B;若格子未上色,则字符为 ?

保证所有测试用例中 nmnm 的总和不超过 10610^6

Output Format

对于每个测试用例,如果不能给所有未上色的格子上色以使棋盘上没有棋盘格图案,则输出一行 NO

否则,输出一行 YES。在接下来的 nn 行中,输出与输入格式相同的涂色棋盘。输出的棋盘应满足以下条件:

  • 没有任何棋盘格图案。
  • 仅由 BW 组成。
  • 如果输入中某个格子已经上色,则在输出中不能更改其颜色。

如果有多个解决方案,输出其中任意一个。

3
2 2
??
??
3 3
BW?
W?B
?BW
3 3
BW?
W?W
?W?
YES
BW
WW
NO
YES
BWB
WWW
BWB

Hint

题面翻译由 ChatGPT-4o 提供。