测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A1729. 地宫2

编程题 普及/提高-
知识点

题目描述

一个迷宫由 $R$ 行 $C$ 列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走,还有的是传送门,走到传送门可以瞬间传送至任意传送门(不消耗步数)。

给定一个迷宫,求从左上角走到右下角最少需要走多少步。每步只能向上下左右四个方向走一步,不能斜着走。

输入格式

第一行是两个整数,$R,C(1 \leq R,C \leq 40)$,代表迷宫的长和宽。

接下来是 $R$ 行,每行 $C$ 个字符,代表整个迷宫。

空地格子用'.'表示,有障碍物的格子用'#'表示,传送门用`'$'`表示,传送门数目小于 $10$。

迷宫左上角和右下角都是'.'

输出格式

输出从左上角走到右下角至少要经过多少步。计算步数要包括起点和终点。如果走不到终点输出 $-1$。

输入输出样例

输入 #1
5 5
.$###
##...
#.#.#
#.#.#
#.#$.
输出 #1
3
上一题 去做题 下一题