编程题
### 问题描述 在一个神秘的幻想世界中,勇敢的小蓝意外陷入了一座迷宫中。这座迷宫是一个 $n \times n$ 的网格,其中某些格子被沼泽所覆盖,无法通行。迷宫的左上角为起点 $(1,1)$,右下角为终点 $(n,n)$,小蓝希望能够找到一条路径从起点走到终点,顺利逃离迷宫。 迷宫中的每个格子都有一个状态,用 `0` 表示空地,用 `1` 表示沼泽。小蓝每次可以向上、下、左、右四个方向移动,并且可以选择移动 $1$ 到 $k$ 的距离(每次移动代价相同)。移动的距离是指两个格子之间的曼哈顿距离(即横向和纵向的距离之和)。为了尽快逃离迷宫,小蓝想知道他需要花费的最小代价是多少。 假设存在一种路径可以使小蓝走出迷宫,则输出最小代价;如果无法找到这样的路径,则输出 `-1`。 请你帮助小蓝计算逃离迷宫所需的最小代价。 ### 输入格式 第一行输入三个整数 $n$、$w$ 和 $k$($1 \le n, w, k \le 1000$),分别表示迷宫的大小、每次移动的代价和移动的最大距离。 接下来的 $n$ 行,每行包含 $n$ 个整数 $a_{i,j}$($0 \le a_{i,j} \le 1$),表示迷宫中每个格子的状态。 ### 输出格式 输出仅一行,表示小蓝逃离迷宫所需的最小代价。如果无法走出迷宫,则输出 `-1`。 ### 样例输入 ``` 3 2 1 0 1 0 0 0 0 0 0 0 ``` ### 样例输出 ``` 8 ```
查看答案
赣ICP备20007335号-2