小挖的核燃料填充

Luogu
IDLGP8549
Time1000ms
Memory128MB
DifficultyP4
深度优先搜索 DFS
小挖做 Web 设计的时候,剧情里插入了酷炫的核填充情节!但很可惜,受制于技术,情节对应的游戏竟然是数独…… 一开始,会给定你一个有 $n\times n$ 个**宫**,每个宫中有 $n \times n$ 个元素,且**早已全部正确填好**的 $n$ 阶数独。本题中数独游戏的详细表示与玩法见下方 **“补充说明”** 。 但小挖会把其中**一些宫向左或者向右转 90 度/180 度**。比如,若一个宫初始为 ```cpp 087 654 321 ``` 那么它向左旋转 $90$ 度后会变成: ```cpp 741 852 063 ``` 你在恢复数独时,也**只能将一些宫向左转 $90$ 度**,一次旋转算作一步。现在小挖想考考你:如果把操作后的数独重新恢复成合法的数独,最少需要多少步呢? 如果一开始小挖给出的数独局面不可以通过任意次、任意位置的左旋得到,则输出 $-1$ 。~~为什么呢?因为小挖给出的是“自认为完全正确的”数独,但实际不一定。~~ ## Input 第 $1$ 行,输入一个正整数 $n$。 第 $2\sim n^2+1$ 行,每行输入 $n^2$ 个 $16$ 进制整数,表示一个给定的数独局面,表示小挖操作之后的游戏。 ## Output 第 $1$ 行输出一个整数,表示最小步数 $s$。 第 $2\sim s+1$ 行,每行输出两个整数 $x_i,y_i$。表示对行号列号为 $x_i,y_i$ 的宫向左旋转了 $90$ 度。 数据保证当存在解时,最优解方案唯一。输出时请按如下规则输出: 设 $i<j$ 表示输出方案时的第 $i,j$ 两步。则: - $x_i\leq x_j$。 - 若 $x_i= x_j$ ,则 $y_i\leq y_j$。 若不存在合法方案,请输出 $-1$。 [samples] ## Note 对于 $40\%$ 的数据,$2 \le n\leq 3$。 对于 $100\%$ 的数据,$2 \le n\leq 4$。 ## Hint $n$ 阶数独合法的条件:每一行、每一列、每一个粗线宫 $(n\times n)$ 内的数字均含 $0\sim n^2-1$,且不重复。 需要注意的是,本题内对于 $4$ 阶数独的表示方式中 $>9$ 的数字采用了十六进制表示法。准确来说 $\mathrm A=10$,$\mathrm B=11$,$\mathrm C=12$,$\mathrm D=13$,$\mathrm E=14$,$\mathrm F=15$。
Samples
Input #1
3
701210842
832478367
564653501
386648785
457235610
021170423
410702257
327514806
685368341
Output #1
12
1 1
1 1
1 2
1 3
2 1
2 2
2 3
2 3
3 1
3 1
3 3
3 3
Input #2
4
36952EA1CF74857C
18E207C9B36D0419
4DAC56BF8209DFE2
B07FD3485AE1BA36
36B5B7CA6E5839FE
A4985620FD32A8B7
01CF94DF1B7C0564
7DE283E14A09C21D
B46D729D0F7246B0
8CF560154BCA159E
1327AB8459D8D278
EA09FC3E6E31A3CF
8E910623C5622B60
320BF7EDB847CDFE
45AF5A18310F183A
6CD7B9C4A9ED7459
Output #2
17
1 1
1 1
1 2
1 2
1 3
1 3
1 4
2 2
2 3
2 4
3 1
3 2
3 2
3 3
4 1
4 2
4 4
API Response (JSON)
{
  "problem": {
    "name": "小挖的核燃料填充",
    "description": {
      "content": "小挖做 Web 设计的时候,剧情里插入了酷炫的核填充情节!但很可惜,受制于技术,情节对应的游戏竟然是数独…… 一开始,会给定你一个有 $n\\times n$ 个**宫**,每个宫中有 $n \\times n$ 个元素,且**早已全部正确填好**的 $n$ 阶数独。本题中数独游戏的详细表示与玩法见下方 **“补充说明”** 。 但小挖会把其中**一些宫向左或者向右转 90 度/180 度**。比",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P4"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8549"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "小挖做 Web 设计的时候,剧情里插入了酷炫的核填充情节!但很可惜,受制于技术,情节对应的游戏竟然是数独……\n\n一开始,会给定你一个有 $n\\times n$ 个**宫**,每个宫中有 $n \\times n$ 个元素,且**早已全部正确填好**的 $n$ 阶数独。本题中数独游戏的详细表示与玩法见下方 **“补充说明”** 。\n\n但小挖会把其中**一些宫向左或者向右转 90 度/180 度**。比...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments