loj#P4014. 「eJOI2023」Square Grid Puzzle
「eJOI2023」Square Grid Puzzle
题目描述
本题译自 eJOI2023 Problem D. Square Grid Puzzle
在这个问题中,你将得到一个标号从 开始的 方格组成的方阵,其中包含从 到 的不同整数。你的目标是达到有序状态,即对于每个 ,第 行和第 列的交点处的数字都等于 。你可以通过两种类型的移动来实现这个目标:
- 下移: "D ",其中 是网格最上面一行数字的某种重新排列。使用这种移动,最上面的一行将被移除,而由数字 从左到右组成的新行将被添加到网格底部。
- 右移: "R ",其中 是网格最左侧一列数字的某种重新排列。使用这种移动,最左侧的一列将被移除,而由数字 从上到下组成的新列将被添加到网格右侧。
重新排列是指改变数字的顺序,而不添加或删除任何数字,并且它可能保留原始顺序。
例如,如果当前的网格是:
行/列 | 0 | 1 | 2 |
---|---|---|---|
0 | 2 | 4 | 6 |
1 | 8 | 1 | 5 |
2 | 7 | 3 | 0 |
通过执行移动 "D 6 2 4",我们将得到以下网格:
行/列 | 0 | 1 | 2 |
---|---|---|---|
0 | 8 | 1 | 5 |
1 | 7 | 3 | 0 |
2 | 6 | 2 | 4 |
然而,如果我们执行移动 "R 2 8 7",我们将得到:
行/列 | 0 | 1 | 2 |
---|---|---|---|
0 | 4 | 6 | 2 |
1 | 1 | 5 | 8 |
2 | 3 | 0 | 7 |
对于 ,目标网格将如下所示:
行/列 | 0 | 1 | 2 |
---|---|---|---|
0 | 0 | 1 | 2 |
1 | 3 | 4 | 5 |
2 | 6 | 7 | 8 |
你的目标是用少于 次移动来解决这个问题。然而,如果你使用更多的移动或没有解决问题,也可能会获得部分分数。具体详情请参考计分部分。
输入格式
第一行包含一个单独的整数 。
接下来的 行每行有 个数字,表示初始网格。
输出格式
输出一行一个单独的整数 表示移动的次数。接下来的 行每行包含一个整数表示一次移动。
计分
令 表示你解决方案中的移动次数。此外,令 和 。
如果你的输出不合法,或者 ,你将获得 分。否则,你的分数取决于正确目标位置的数字数量(表示为 )。
如果 ,问题没有解决,你只会获得 的分数。
否则:
- 如果 ,你将获得测试的 分数。
- 如果 ,你将获得 的分数。
每个测试点都有相同的分数。你的分数是各个测试分数的总和。
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
问题没有解决,因为只有两个数字( 和 )在 个数字中处于正确的位置。这个输出将获得 的分数。
数据范围与提示
对于所有输入数据,满足:
- 没有子任务
- 每个 从 到 都有相同数量的测试点