CF1534A Colour the Flag
题目描述
今天我们来玩一个红白涂色游戏(不,这不是俄国内战;这只是加拿大国旗的颜色)。
给你一个 $n \times m$ 的网格,其中包含字符 "R"、"W" 和 "."。"R" 表示红色,"W" 表示白色,"." 表示空白。一个格子的邻居是与它共享边的格子(仅共享角的格子不算邻居)。
你的任务是将所有空白格子填涂成红色或白色,使得每个红色格子的所有邻居都是白色(且没有红色邻居),每个白色格子的所有邻居都是红色(且没有白色邻居)。你不能重新涂色已经有颜色的格子。
输入格式
第一行包含一个整数 $t$($1 \le t \le 100$),表示测试用例的数量。
每个测试用例的第一行包含两个整数 $n$($1 \le n \le 50$)和 $m$($1 \le m \le 50$),分别表示网格的高度和宽度。
接下来的 $n$ 行,每行包含 $m$ 个字符,表示网格。每个字符为 'R'、'W' 或 '.'。
输出格式
对于每个测试用例,如果存在满足条件的网格,输出 "YES";否则输出 "NO"。
如果存在满足条件的网格,接下来输出 $n$ 行,每行 $m$ 个字符,表示一种可行的网格方案。如果有多种答案,输出任意一种即可。
输出中的 "YES" 和 "NO" 不区分大小写,例如 "yEs" 和 "nO" 也是有效的输出。但网格中的字符区分大小写。
说明/提示
第一个样例的答案已在示例输出中给出,可以证明第二个样例不存在满足条件的网格。第三个样例所有格子初始就已涂色,且涂色方案是合法的。
由 ChatGPT 4.1 翻译