#3149. Third Avenue

0

Third Avenue

Third Avenue

题目描述

有一个城镇表示为一个具有 HH 行横向和 WW 列纵向的二维网格。
字符 ai,ja_{i,j} 描述从上数第 ii 行从左数第 jj 列的方格。这里,ai,ja_{i,j} 为下面之一:SS、GG、..、#、aa、... 和 zz。

表示不能进入的方格,aa、...、zz 表示带有传送器的方格。

Takahashi 最初在表示为 SS 的方格中。每一秒,他将做以下动作之一:

前往与当前位置水平或垂直相邻且不是 # 的方格。 选择一个与他当前位置字符相同的方格,并传送到该方格。只有当他位于表示为 aa、... 或 zz 的方格时,才能使用此动作。

求 Takahashi 从表示为 SS 的方格到表示为 GG 的方格所需的最短时间。
如果目的地不可到达,则输出 −1-1。

输入格式

输入从标准输入按以下格式给出: HH WW a1,1…a1,Wa_{1,1}\dots a_{1,W} ⋮\vdots aH,1…aH,Wa_{H,1}\dots a_{H,W}

输出格式

输出 Takahashi 从表示为 SS 的方格到表示为 GG 的方格所需的最短时间。
如果目的地从初始位置不可到达,则输出 −1-1。

2 5
S.b.b
a.a.G
4
11 11
S##...#c...
...#d.#.#..
..........#
.#....#...#
#.....bc...
#.##......#
.......c..#
..#........
a..........
d..#...a...
.#........G
14
11 11
.#.#.e#a...
.b..##..#..
#....#.#..#
.#dd..#..#.
....#...#e.
c#.#a....#.
.....#..#.e
.#....#b.#.
.#...#..#..
......#c#G.
#..S...#...
-1

提示

1≤H,W≤20001 \le H, W \le 2000 ai,ja_{i,j} 是 SS、GG、..、# 或小写英文字母。 恰有一个方格表示为 SS 且一个方格表示为 GG。记 (i,j)(i, j) 表示从上数第 ii 行从左数第 jj 列的方格。
最初,Takahashi 在 (1,1)(1, 1)。 一种在四秒内到达 (2,5)(2, 5) 的方法是:

从 (1,1)(1, 1) 走到 (2,1)(2, 1); 从 (2,1)(2, 1) 传送到 (2,3)(2, 3),它也是一个 aa 方格; 从 (2,3)(2, 3) 走到 (2,4)(2, 4); 从 (2,4)(2, 4) 走到 (2,5)(2, 5)。

标签: AtCoder|abc184E

来源

AtCoder|abc184E