#P16000. [ICPC 2020 NAC] Hopscotch

[ICPC 2020 NAC] Hopscotch

题目描述

镇上有一个新的艺术装置,它激发了你……玩一个幼稚的游戏。该艺术装置由一块铺有 n×nn \times n 方砖的地板组成。每块砖上有一个 11kk 之间的数字。你想在上面玩跳房子游戏。你希望从某个标有 11 的砖块开始,然后跳到某个标有 22 的砖块,接着是 33,依此类推,直到到达某个标有 kk 的砖块。你是一个优秀的跳跃者,所以你可以跳任何所需的距离。你恰好访问每个数字 11kk 的砖块一次。

在一整局跳房子游戏中,可能的最短总距离是多少?使用曼哈顿距离:位于 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2) 的两块砖之间的距离为 x1x2+y1y2|x_1 - x_2| + |y_1 - y_2|

输入格式

输入的第一行包含两个空格分隔的整数 nn1n501 \le n \le 50)和 kk1kn21 \le k \le n^2),其中艺术装置由 n×nn \times n 的矩阵组成,砖块上的数字为 11kk

接下来的 nn 行,每行包含 nn 个空格分隔的整数 xx1xk1 \le x \le k)。这就是艺术装置。

输出格式

输出一个整数,表示从某个 11 砖块开始,到某个 kk 砖块结束的最短路径的总长度;如果不可能,则输出 1-1

10 5
5 1 3 4 2 4 2 1 2 1
4 5 3 4 1 5 3 1 1 4
4 2 4 1 5 4 5 2 4 1
5 2 1 5 5 3 5 2 3 2
5 5 2 3 2 3 1 5 5 5
3 4 2 4 2 2 4 4 2 3
1 5 1 1 2 5 4 1 5 3
2 2 4 1 2 5 1 4 3 5
5 3 2 1 4 3 5 2 3 1
3 4 2 5 2 5 3 4 4 2
5
10 5
5 1 5 4 1 2 2 4 5 2
4 2 1 4 1 1 1 5 2 5
2 2 4 4 4 2 4 5 5 4
2 4 4 5 5 5 2 5 5 2
2 2 4 4 4 5 4 2 4 4
5 2 5 5 4 1 2 4 4 4
4 2 1 2 4 4 1 2 4 5
1 2 1 1 2 4 4 1 4 5
2 1 2 5 5 4 5 2 1 1
1 1 2 4 5 5 5 5 5 5
-1

提示

翻译由 DeepSeek V3.2 完成