P10988 [蓝桥杯 2023 国 Python A] 走方格
题目描述
给定一个 $N$ 行 $N$ 列的方格,第 $i$ 行第 $j$ 列的方格坐标为 $(i, j)$,高度为
$H_{i,j}$。小蓝从左上角坐标 $(0, 0)$ 出发,目的地是右下角坐标 $(N − 1, N − 1)$。
当小蓝位于第 $r$ 行第 $c$ 列时,他有如下的移动方式:
1. 若 $r + 1 < N$,可以移动到 $(r + 1, c)$,花费 $1$ 秒;
1. 若 $c + 1 < N$,可以移动到 $(r, c + 1)$,花费 $1$ 秒;
1. 对于任意整数 $L$,若 $H_{r,c} > H_{r,c+1} > \cdots > H_{r,c+L}$,可以移动到 $(r, c + L)$,花费 $1$ 秒;
1. 对于任意整数 $L$,若 $H_{r,c} > H_{r,c−1} > \cdots > H_{r,c−L}$,可以移动到 $(r, c − L)$,花费 $1$ 秒。
现在给出方格,请问小蓝从 $(0, 0)$ 移动到 $(N − 1, N − 1)$ 最少需要多少秒?
输入格式
输入的第一行包含一个整数 $N$ 表示方格大小。
接下来 $N$ 行,每行包含 $N$ 个整数,表示每个方格上的数字。
输出格式
输出一个整数表示答案。
说明/提示
对于 $20\%$ 的评测用例,$1 \le N \le 10$;
对于 $50\%$ 的评测用例,$1 \le N \le 100$;
对于所有评测用例,$1 \le N \le 1000,0 \le H_{i, j} \le 100$。
#### 样例解释
移动顺序为:$(0, 0)\rightarrow (1, 0)\rightarrow(2, 0)\rightarrow(3, 0)\rightarrow(3, 2)\rightarrow(3, 3)$,其中坐标 $(3, 0),(3, 1),(3, 2)$ 处的数字分别为 $9 > 8 > 0$,所以可以花费 $1$ 秒从 $(3, 0)$
移动到 $(3, 2)$。