#ABC336F. 旋转拼图

旋转拼图

旋转拼图

题目描述

有一个 HHWW 列的网格。初始时,11H×WH \times W 的每个整数恰好各出现一次在网格中。

具体来说,对于 1iH1 \le i \le H1jW1 \le j \le W,从上方数第 ii 行、从左数第 jj 列的格子中写着 Si,jS_{i,j}

下面,用 (i,j)(i,j) 表示从上方数第 ii 行、从左数第 jj 列的格子。

请判断能否通过重复进行以下操作至多 2020 次(可以是零次),达到对所有整数对 (i,j)(i,j)1iH1 \le i \le H1jW1 \le j \le W)都满足格子 (i,j)(i,j) 中写着整数 ((i1)×W+j)((i-1) \times W + j) 的状态。

如果可以,请输出所需的最少操作次数。

如果在 2020 次以内无法达到(包括无论重复多少次都无法达到的情况),请输出 1-1

操作:选择网格中一个大小为 (H1)×(W1)(H-1) \times (W-1) 的矩形,将其旋转 180180 度。

更精确地说,选择整数 xxyy0x,y10 \le x, y \le 1),对所有满足 1iH11 \le i \le H-11jW11 \le j \le W-1 的整数对 (i,j)(i,j),同时把格子 (i+x,j+y)(i+x,j+y) 中写的整数替换为格子 (Hi+x,Wj+y)(H-i+x,W-j+y) 中写的数。

注意,只需要格子中写的整数满足条件即可,数字的书写方向无关紧要。

输入格式

输入按以下格式从标准输入给出:

HH WW
S1,1S_{1,1} S1,2S_{1,2} \ldots S1,WS_{1,W}
S2,1S_{2,1} S2,2S_{2,2} \ldots S2,WS_{2,W}
\vdots
SH,1S_{H,1} SH,2S_{H,2} \ldots SH,WS_{H,W}

输出格式

输出达到题目要求状态所需的最少操作次数。

如果在 2020 次以内无法满足条件,则输出 1-1

样例

3 3
9 4 3
2 1 8
7 6 5
2

按以下顺序操作,可以在 22 次操作内满足题目条件。

选择左上角的矩形进行操作。即选择 x=0x=0y=0y=0

选择右下角的矩形进行操作。即选择 x=1x=1y=1y=1

另一方面,无法在 11 次或更少的操作内满足条件,所以输出 22

4 6
15 18 1 14 3 4
23 24 19 8 9 12
13 2 17 6 5 16
21 22 7 20 11 10
-1

无法在 2020 次或更少的操作内满足条件,所以输出 1-1

4 6
1 4 13 16 15 18
21 20 9 12 23 10
17 14 5 6 3 2
11 22 7 24 19 8
20
4 3
1 2 3
4 5 6
7 8 9
10 11 12
0

数据范围

  • 3H,W83 \le H, W \le 8
  • 1Si,jH×W1 \le S_{i,j} \le H \times W
  • 如果 (i,j)(i,j)(i,j) \neq (i',j'),则 Si,jSi,jS_{i,j} \neq S_{i',j'}
  • 所有输入均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
3177
类型
传统题
Time Limit
5000ms
Memory Limit
1024MiB
上传者
标签