CF1621A.Stable Arrangement of Rooks

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

Stable Arrangement of Rooks

题目描述

你有一个 n×nn \times n 的国际象棋棋盘和 kk 个车。棋盘的行编号为 11nn(从上到下),列编号为 11nn(从左到右)。格子 (x,y)(x, y) 表示第 xx 行第 yy 列的格子,其中 1xn1 \leq x \leq n1yn1 \leq y \leq n

如果棋盘上的车的摆放方式满足没有任何一辆车能攻击到另一辆车,则称这种摆放方式是“好”的。

一辆车可以攻击所有与它在同一行或同一列的车。

如果一个“好”的摆放方式满足:存在一辆车可以移动到相邻的格子(即与当前格子有公共边的格子),使得摆放方式变得不是“好”的,则称这种摆放方式为“不稳定”的。否则,称为“稳定”的。这里,相邻的格子指的是有公共边的格子。

如图,在 4×44 \times 4 的棋盘上有 33 个车的这种摆放方式是“好”的,但不是“稳定”的:可以把 (1,1)(1, 1) 的车移动到相邻的 (2,1)(2, 1),此时 (2,1)(2, 1)(2,4)(2, 4) 的车会互相攻击。

请你找出一种在 n×nn \times n 棋盘上摆放 kk 个车的“稳定”摆放方式,或者报告不存在这样的摆放方式。

输入格式

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

每个测试用例的第一行包含两个整数 nnkk1kn401 \leq k \leq n \leq 40),分别表示棋盘的大小和车的数量。

输出格式

如果存在一种“稳定”的摆放方式,在棋盘上摆放 kk 个车,则输出 nn 行,每行由符号 . 和 R 组成。如果第 ii 行第 jj 列有车,则第 ii 行第 jj 个字符为 R,否则为 .。

如果有多种方案,可以输出任意一种。

如果不存在“稳定”的摆放方式,输出 1-1

说明/提示

在第一个测试用例中,你需要在 3×33 \times 3 的棋盘上找到 22 个车的“稳定”摆放方式。将它们放在 (3,1)(3, 1)(1,3)(1, 3) 可以得到“稳定”的摆放。

在第二个测试用例中,可以证明无法在 3×33 \times 3 的棋盘上放置 33 个车,使其为“稳定”的摆放方式。

由 ChatGPT 4.1 翻译

样例

5
3 2
3 3
1 1
5 2
40 33
..R
...
R..
-1
R
.....
R....
.....
....R
.....
-1

在线编程 IDE

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