#P10427. [蓝桥杯 2024 省 B] 数字接龙

    ID: 16585 Type: RemoteJudge 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>动态规划 DP搜索2024网络流Tarjan蓝桥杯省赛

[蓝桥杯 2024 省 B] 数字接龙

题目背景

:::info[注意]{open} 右侧的题目贡献者并非出题人,而是搬运题目的志愿者。 :::

题目描述

小蓝最近迷上了一款名为《数字接龙》的迷宫游戏,游戏在一个大小为 n×nn \times n 的格子棋盘上展开,其中每一个格子处都有着一个 0⋯k−10 \cdots k-1 之间的整数。游戏规则如下:

  1. 从左上角 (0,0)(0,0) 处出发,目标是到达右下角 (n−1,n−1)(n-1,n-1) 处的格子,每一步可以选择沿着水平 / 垂直 / 对角线方向移动到下一个格子。
  2. 对于路径经过的棋盘格子,按照经过的格子顺序,上面的数字组成的序列要满足:0,1,2,⋯ ,k−1,0,1,2,⋯ ,k−1,0,1,2⋯0,1,2, \cdots ,k-1,0,1,2, \cdots ,k-1,0,1,2 \cdots。
  3. 途中需要对棋盘上的每个格子恰好都经过一次(仅一次)。
  4. 路径中不可以出现交叉的线路。例如之前有从 (0,0)(0,0) 移动到 (1,1)(1,1),那么再从 (1,0)(1,0) 移动到 (0,1)(0,1) 线路就会交叉。

为了方便表示,我们对可以行进的所有八个方向进行了数字编号,如下图 22 所示;因此行进路径可以用一个包含 0⋯70 \cdots 7 之间的数字字符串表示,如下图 11 是一个迷宫示例,它所对应的答案就是:4125521441255214。

现在请你帮小蓝规划出一条行进路径并将其输出。如果有多条路径,输出字典序最小的那一个;如果不存在任何一条路径,则输出 −1−1。

输入格式

第一行包含两个整数 n,kn, k。 接下来输入 nn 行,每行 nn 个整数表示棋盘格子上的数字。

输出格式

输出一行表示答案。如果没有对应的路径,输出 −1-1。

3 3
0 2 0
1 1 1
2 0 2
41255214

提示

数据规模与约定

  • 对 80%80\% 的数据,n≤5n \leq 5。
  • 对全部的测试数据,1≤n,k≤101 \leq n,k \leq 10。