CF1534A.Colour the Flag

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Colour the Flag

题目描述

今天我们来玩一个红白涂色游戏(不,这不是俄国内战;这只是加拿大国旗的颜色)。

给你一个 n×mn \times m 的网格,其中包含字符 "R"、"W" 和 "."。"R" 表示红色,"W" 表示白色,"." 表示空白。一个格子的邻居是与它共享边的格子(仅共享角的格子不算邻居)。

你的任务是将所有空白格子填涂成红色或白色,使得每个红色格子的所有邻居都是白色(且没有红色邻居),每个白色格子的所有邻居都是红色(且没有白色邻居)。你不能重新涂色已经有颜色的格子。

输入格式

第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nn1n501 \le n \le 50)和 mm1m501 \le m \le 50),分别表示网格的高度和宽度。

接下来的 nn 行,每行包含 mm 个字符,表示网格。每个字符为 'R'、'W' 或 '.'。

输出格式

对于每个测试用例,如果存在满足条件的网格,输出 "YES";否则输出 "NO"。

如果存在满足条件的网格,接下来输出 nn 行,每行 mm 个字符,表示一种可行的网格方案。如果有多种答案,输出任意一种即可。

输出中的 "YES" 和 "NO" 不区分大小写,例如 "yEs" 和 "nO" 也是有效的输出。但网格中的字符区分大小写。

说明/提示

第一个样例的答案已在示例输出中给出,可以证明第二个样例不存在满足条件的网格。第三个样例所有格子初始就已涂色,且涂色方案是合法的。

由 ChatGPT 4.1 翻译

样例

3
4 6
.R....
......
......
.W....
4 4
.R.W
....
....
....
5 1
R
W
R
W
R
YES
WRWRWR
RWRWRW
WRWRWR
RWRWRW
NO
YES
R
W
R
W
R

在线编程 IDE

建议全屏模式获得最佳体验