CF1898C Colorful Grid

题目描述

Elena 有一个由 $n$ 条水平线和 $m$ 条垂直线组成的网格。水平线从上到下编号为 $1$ 到 $n$,垂直线从左到右编号为 $1$ 到 $m$。对于每个 $x$ 和 $y$($1 \leq x \leq n$,$1 \leq y \leq m$),记号 $(x, y)$ 表示第 $x$ 条水平线与第 $y$ 条垂直线的交点。 两个点 $(x_1, y_1)$ 和 $(x_2, y_2)$ 当且仅当 $|x_1-x_2| + |y_1-y_2| = 1$ 时相邻。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1898C/6c3cb21cf557af9dcb463c1e32ea40590620a065.png) 上图为 $n=4$ 条水平线和 $m=5$ 条垂直线组成的网格。 Elena 称长度为 $g$ 的点序列 $p_1, p_2, \ldots, p_g$ 为一次“行走”,当且仅当满足以下所有条件: - 序列的第一个点 $p_1$ 是 $(1, 1)$。 - 序列的最后一个点 $p_g$ 是 $(n, m)$。 - 对于每个 $1 \leq i < g$,点 $p_i$ 和 $p_{i+1}$ 是相邻的。 注意,行走过程中可以多次经过同一个点,特别是 $(1, 1)$ 或 $(n, m)$ 可以出现多次。 在 Elena 的网格中,相邻点之间一共存在 $n(m-1)+(n-1)m$ 条线段。Elena 想要将这些线段分别涂成蓝色或红色,使得存在一条长度为 $k+1$ 的行走 $p_1, p_2, \ldots, p_{k+1}$,满足: - 在该行走中,连接连续两点的 $k$ 条线段中,任意相邻的两条线段颜色不同(即对于每个 $1 \leq i < k$,点 $p_i$ 与 $p_{i+1}$ 之间的线段颜色与 $p_{i+1}$ 与 $p_{i+2}$ 之间的线段颜色不同)。 请你找出一种满足条件的涂色方案,或者报告不存在这样的方案。

输入格式

每组测试包含多组数据。第一行包含一个整数 $t$($1 \leq t \leq 32$),表示测试用例的数量。 每组测试的唯一一行包含三个整数 $n$、$m$ 和 $k$($3 \leq n, m \leq 16$,$1 \leq k \leq 10^9$),分别表示网格的行数、列数,以及 Elena 期望的行走所经过的线段数。

输出格式

对于每组测试数据,如果不存在满足条件的涂色方案,输出一行 "NO"。 否则,第一行输出 "YES",然后输出所需的涂色方案。 在接下来的 $n$ 行中,每行输出 $m-1$ 个用空格分隔的字符,第 $i$ 行第 $j$ 个字符表示点 $(i, j)$ 与 $(i, j+1)$ 之间线段的颜色。用 'B' 表示蓝色,'R' 表示红色。 在接下来的 $n-1$ 行中,每行输出 $m$ 个用空格分隔的字符,第 $i$ 行第 $j$ 个字符表示点 $(i, j)$ 与 $(i+1, j)$ 之间线段的颜色。同样用 'B' 表示蓝色,'R' 表示红色。 答案中字母大小写均可。例如,"yEs"、"yes"、"Yes" 和 "YES" 都被视为肯定回答,'R' 和 'r' 都表示红色。

说明/提示

在第一个测试用例中,下面的图片展示了一个正确答案。长度为 $12$ 的颜色交替行走已被高亮显示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1898C/b1be0887b26038ecce64f350278435c139e51a92.png) 在第二个和第三个测试用例中,可以证明不存在满足条件的涂色方案。 由 ChatGPT 4.1 翻译