编程题
### 问题描述 在一个古老的城市地下,考古学家发现了一座巨大的迷宫。这个迷宫据说有一个秘密室,里面藏有无价之宝。考古学家希望你帮助他们找到从迷宫的入口 `S` 到秘密室 `E` 的路径。 迷宫表示为一个 $n \times m$ 的矩阵: - `.` 表示一个可以走的空地。 - `#` 表示一个墙,不能走。 - `S` 表示开始位置。 - `E` 表示结束位置。 - `T` 表示一个定时的陷阱。当考古学家进入一个 `T` 位置,他们必须在接下来的 $k$ 步之内到达 `E`,否则陷阱会启动,导致失败。 您的任务是确定从 `S` 到 `E` 的最短路径。如果存在多个最短路径,您需要输出路径中经过的 `T` 的最小数量。 请注意:每个陷阱的触发和步数统计都是独立的,多次通过陷阱并不会刷新已存在的计数器! ### 输入格式 输入的第一行包含三个整数 $n$, $m$ 和 $k$,$(1 \leq n, m \leq 500$,$1 \leq k \leq 10^4)$,分别表示地图的行数、列数和陷阱的有效步数。 接下来的 $n$ 行每行有 $m$ 个字符,描述地下迷宫的地图。 ### 输出格式 如果能够从 `S` 到 `E` ,输出一个整数,表示从 `S` 到 `E` 的最短路径长度。 如果无法到达 `E`,则输出 $-1$。 ### 样例输入 ``` 5 5 3 ..... .T#T. .S#E. .T##. ..... ``` ### 样例输出 ``` 8 ``` ### 样例说明 从 `S` 开始,我们可以先向左走,然后上走 $2$ 步,再右走 $3$ 步,下走两步到达 `E`。总共走了 $8$ 步,期间经过了第 $2$ 行第 $4$ 行的一个陷阱 `T`。 ### 测评数据规模 对于 $40$% 的数据,$1 \leq n, m \leq 10$。 对于 $80$% 的数据,$1 \leq n, m \leq 100$。 对于 $100$% 的数据,$1 \leq n, m \leq 500$。
查看答案
赣ICP备20007335号-2