P11357 [eJOI 2023] Square Grid Puzzle
题目描述
有一个 $N\times N$ 的矩阵,元素从 $0\sim N^2-1$ 编号。我们希望通过**小于** $3N$ 次操作将第 $i$ 行第 $j$ 列的元素变为 $i\cdot N+j$。
你可以对矩阵进行两种操作:
- ``D a[0] a[1] ... a[N-1]``:对矩阵第一行重排,再将每一列向上循环位移一位,你需要保证给出的 $a$ 是矩阵第一行的一个重排。
- ``R b[0] b[1] ... b[N-1]``:对矩阵第一列重排,再将每一行向左循环位移一位,你需要保证给出的 $b$ 是矩阵第一列的一个重排。
例如,如果当前矩阵如下:
|R/C|0|1|2|
|:-:|:-:|:-:|:-:|
|0|2|4|6|
|1|8|1|5|
|2|7|3|0|
如果对原矩阵执行 ``D 2 6 4``,矩阵会变成下图:
|R/C|0|1|2|
|:-:|:-:|:-:|:-:|
|0|8|1|5|
|1|7|3|0|
|2|**6**|**2**|**4**|
如果对原矩阵执行 ``R 2 8 7``,矩阵会变成下图:
|R/C|0|1|2|
|:-:|:-:|:-:|:-:|
|0|4|6|**2**|
|1|1|5|**8**|
|2|3|0|**7**|
即使你使用了 $\geq 3N$ 次操作,或者有一些数没有复原,你仍然可以得到一些部分分,见 **【评分方式】** 一栏。
输入格式
第一行输入一个整数 $N$。
接下来 $N$ 行每行输入 $N$ 个整数 $F_{i,j}$ 代表初始矩阵。
输出格式
第一行输出一个整数 $M$,代表操作次数。
接下来 $M$ 行每行输出一次操作,格式见上。
说明/提示
**【评分方式】**
令 $A=3N$,$B=2N^2$,$C$ 为操作后符合要求的位置个数。
如果你的程序没有正常结束或格式错误或 $M>B$,该测试点不得分。
否则,若 $C