P7007 [CERC2013] Rubik's Rectangle
题目描述
一种旨在征服游戏市场的新型益智游戏是魔方与十五数码的融合。棋盘是一个 $H \times W$ 的框架,上面印有从 $1$ 到 $H \cdot W$ 的所有数字。

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

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

输入格式
输入的第一行包含测试用例的数量 $T$。测试用例的描述如下:
每个测试用例的描述以一个空行开始。下一行包含两个用空格分隔的整数 $W$ 和 $H (1 \leq W,H \leq 100)$,分别表示拼图的宽度和高度。接下来的 $H$ 行中的每一行包含 $W$ 个用空格分隔的整数,表示连续瓷砖上印刷的数字。
输出格式
按输入中出现的顺序打印测试用例的答案。对于每个测试用例的输出以单词 POSSIBLE 或 IMPOSSIBLE 开始,具体取决于是否有可能解决拼图。如果存在解决方案,请在同一行打印首先是移动的次数(可能为 $0$),然后是它们的描述,每个描述由一个字母 $R$ 或 $C$ 组成,指定我们是要翻转行还是列,并与要翻转的行或列的索引连接。
只要解决方案不使用超过 $10 \cdot W \cdot H$ 次移动,任何解决方案都将被接受。每个测试用例要么在此限制内可解,要么根本不可解。
说明/提示
时间限制:6 秒,内存限制:128 MB。
题面翻译由 ChatGPT-4o 提供。