#P7007. [CERC2013] Rubik's Rectangle

[CERC2013] Rubik's Rectangle

Description

一种旨在征服游戏市场的新型益智游戏是魔方与十五数码的融合。棋盘是一个 H×WH \times W 的框架,上面印有从 11HWH \cdot W 的所有数字。

唯一允许的移动类型是翻转其中一行或一列。翻转会逆转该行(或列)元素的顺序。下面第三行被翻转:

给定一个以某种任意顺序编号的棋盘。确定一系列翻转操作,使棋盘达到整齐排序的位置,如果可能的话。

Input Format

输入的第一行包含测试用例的数量 TT。测试用例的描述如下:

每个测试用例的描述以一个空行开始。下一行包含两个用空格分隔的整数 WWH(1W,H100)H (1 \leq W,H \leq 100),分别表示拼图的宽度和高度。接下来的 HH 行中的每一行包含 WW 个用空格分隔的整数,表示连续瓷砖上印刷的数字。

Output Format

按输入中出现的顺序打印测试用例的答案。对于每个测试用例的输出以单词 POSSIBLE 或 IMPOSSIBLE 开始,具体取决于是否有可能解决拼图。如果存在解决方案,请在同一行打印首先是移动的次数(可能为 00),然后是它们的描述,每个描述由一个字母 RRCC 组成,指定我们是要翻转行还是列,并与要翻转的行或列的索引连接。

只要解决方案不使用超过 10WH10 \cdot W \cdot H 次移动,任何解决方案都将被接受。每个测试用例要么在此限制内可解,要么根本不可解。

4

3 3
1 2 3
4 5 6
9 8 7

4 2
1 2 3 4
5 6 7 8

4 4
1 2 15 4
8 7 11 5
12 6 10 9
13 14 3 16

3 4
1 2 4
3 5 6
7 8 9
10 11 12

POSSIBLE 1 R3
POSSIBLE 0
POSSIBLE 3 R3 C3 R2
IMPOSSIBLE

Hint

时间限制:6 秒,内存限制:128 MB。

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