AT_abc332_d [ABC332D] Swapping Puzzle
题目描述
给定两个 $H$ 行 $W$ 列的网格 $A$ 和 $B$。
对于满足 $1 \leq i \leq H$ 和 $1 \leq j \leq W$ 的每一组整数 $(i, j)$,我们称第 $i$ 行第 $j$ 列的格子为格子 $(i, j)$。网格 $A$ 的格子 $(i, j)$ 上写有整数 $A_{i, j}$,网格 $B$ 的格子 $(i, j)$ 上写有整数 $B_{i, j}$。
你可以重复任意多次(也可以一次都不做)以下两种操作中的任意一种:
- 选择满足 $1 \leq i \leq H-1$ 的整数 $i$,交换网格 $A$ 的第 $i$ 行和第 $i+1$ 行。
- 选择满足 $1 \leq i \leq W-1$ 的整数 $i$,交换网格 $A$ 的第 $i$ 列和第 $i+1$ 列。
请判断通过上述操作的若干次重复,是否可以将网格 $A$ 变为网格 $B$。如果可以,请输出所需操作次数的最小值。
这里,网格 $A$ 和网格 $B$ 相等,指的是对于所有满足 $1 \leq i \leq H$ 和 $1 \leq j \leq W$ 的整数对 $(i, j)$,网格 $A$ 的格子 $(i, j)$ 和网格 $B$ 的格子 $(i, j)$ 上的整数都相等。
输入格式
输入按以下格式从标准输入给出。
> $H$ $W$
> $A_{1, 1}$ $A_{1, 2}$ $\cdots$ $A_{1, W}$
> $A_{2, 1}$ $A_{2, 2}$ $\cdots$ $A_{2, W}$
> $\vdots$
> $A_{H, 1}$ $A_{H, 2}$ $\cdots$ $A_{H, W}$
> $B_{1, 1}$ $B_{1, 2}$ $\cdots$ $B_{1, W}$
> $B_{2, 1}$ $B_{2, 2}$ $\cdots$ $B_{2, W}$
> $\vdots$
> $B_{H, 1}$ $B_{H, 2}$ $\cdots$ $B_{H, W}$
输出格式
如果无法将网格 $A$ 变为网格 $B$,输出 `-1`;如果可以,请输出将网格 $A$ 变为网格 $B$ 所需操作次数的最小值。
说明/提示
## 限制条件
- 输入的所有值均为整数。
- $2 \leq H, W \leq 5$
- $1 \leq A_{i, j}, B_{i, j} \leq 10^9$
## 样例解释 1
将初始状态下网格 $A$ 的第 $4$ 列和第 $5$ 列交换后,网格 $A$ 变为如下所示:
```
1 2 3 5 4
6 7 8 10 9
11 12 13 15 14
16 17 18 20 19
```
接着,将网格 $A$ 的第 $2$ 行和第 $3$ 行交换后,网格 $A$ 变为如下所示:
```
1 2 3 5 4
11 12 13 15 14
6 7 8 10 9
16 17 18 20 19
```
最后,将网格 $A$ 的第 $2$ 列和第 $3$ 列交换后,网格 $A$ 变为如下所示,与网格 $B$ 完全一致:
```
1 3 2 5 4
11 13 12 15 14
6 8 7 10 9
16 18 17 20 19
```
通过上述 $3$ 次操作可以将网格 $A$ 变为网格 $B$,且无法用更少的操作完成,因此输出 $3$。
## 样例解释 2
无论如何操作,都无法将网格 $A$ 变为网格 $B$,因此输出 `-1`。
## 样例解释 3
网格 $A$ 一开始就与网格 $B$ 完全一致。
由 ChatGPT 4.1 翻译