A7359 | 小午历险记之沙漠信标
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
在一片被风沙覆盖的无人区中,有一张由方格组成的探测区域图。小午需要从起点 $S$ 出发,前往目标信标 $T$。
地图中每个字符的含义如下:
-
-
-
-
-
小午每一步可以向上 / 下 / 左 / 右移动一格(不能走出地图范围)。在整个行进过程中,最多只能通过一次能量检查点:也就是说,路径上最多进入 $1$ 个
请计算从
地图中每个字符的含义如下:
-
.:普通沙地,可以通行;-
#:岩壁,无法通过;-
G:能量检查点;-
S:起点;-
T:终点。小午每一步可以向上 / 下 / 左 / 右移动一格(不能走出地图范围)。在整个行进过程中,最多只能通过一次能量检查点:也就是说,路径上最多进入 $1$ 个
G 格子;进入该格子的那一步同样计入步数。请计算从
S 到 T 的最少步数;如果无法到达,输出 -1。输入格式
第一行包含两个整数 $n, m$。
接下来 $n$ 行,每行一个长度为 $m$ 的字符串,表示探测区域地图。
保证地图中恰好有一个
接下来 $n$ 行,每行一个长度为 $m$ 的字符串,表示探测区域地图。
保证地图中恰好有一个
S 和一个 T。输出格式
输出一个整数,表示最少步数;若无法到达,则输出
-1。输入输出样例
输入 #1
3 5 S..#. ...GT ...#.
输出 #1
5
样例解释
最短路径需要恰好经过一次能量检查点,在避开岩壁后成功抵达目标信标。
数据范围
对于 $100\%$ 的测试数据,满足:$1\le n,m$ , $n\cdot m\le 2\times 10^5$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?