#P11357. [eJOI2023] Square Grid Puzzle

[eJOI2023] Square Grid Puzzle

题目描述

有一个 N×NN\times N 的矩阵,元素从 0N210\sim N^2-1 编号。我们希望通过小于 3N3N 次操作将第 ii 行第 jj 列的元素变为 iN+ji\cdot N+j

你可以对矩阵进行两种操作:

  • D a[0] a[1] ... a[N-1]:对矩阵第一行重排,再将每一列向上循环位移一位,你需要保证给出的 aa 是矩阵第一行的一个重排。

  • R b[0] b[1] ... b[N-1]:对矩阵第一列重排,再将每一行向左循环位移一位,你需要保证给出的 bb 是矩阵第一列的一个重排。

例如,如果当前矩阵如下:

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 5 8
2 3 0 7

即使你使用了 3N\geq 3N 次操作,或者有一些数没有复原,你仍然可以得到一些部分分,见 【评分方式】 一栏。

输入格式

第一行输入一个整数 NN

接下来 NN 行每行输入 NN 个整数 Fi,jF_{i,j} 代表初始矩阵。

输出格式

第一行输出一个整数 MM,代表操作次数。

接下来 MM 行每行输出一次操作,格式见上。

3
1 4 2
3 7 5
6 8 0


4
R 3 6 1
D 2 3 4
D 5 6 7
R 2 5 8
2
2 1
0 3
0

提示

【评分方式】

A=3NA=3NB=2N2B=2N^2CC 为操作后符合要求的位置个数。

如果你的程序没有正常结束或格式错误或 M>BM>B,该测试点不得分。

否则,若 C<N2C<N^2,你获得该测试点 50%CN250\%\cdot\frac{C}{N^2} 的分数。

否则,若 AMBA\leq M\leq B,你获得该测试点 (40(BMBA)2+50)%(40\cdot(\frac{B-M}{B-A})^2+50)\% 的分数。

否则,你获得满分。

【样例解释】

第一个样例用了 44 次操作复原了矩阵,可以获得 100%100\% 的分数。

第二个样例用了 00 次操作复原了 24=50%\frac{2}{4}=50\% 的位置,可以获得该测试点 25%25\% 的分数。

【数据范围】

对于 100%100\% 的数据,保证 2N92\leq N\leq 9,且 NN 在测试点中均匀分布。