AT_guildfes_2026_final_f EGFパス
题目描述
给定一个 $H$ 行 $W$ 列的网格。第 $i$ 行第 $j$ 列的格子记作格子 $(i,j)$。每一个格子中都写有 `E`、`F`、`G` 中的一个字符,格子 $(i,j)$ 上的字符等于给定字符串 $S_i$ 的第 $j$ 个字符。
一开始,有一个棋子放在格子 $(1,1)$ 上。你的目标是通过若干次操作将棋子移动到格子 $(H,W)$ 上。每次操作,可以将棋子移动到相邻的上下左右四个格子中的一个,但不能移动到与当前格子中字符相同的格子里。
请判断是否可以将棋子移动到格子 $(H,W)$ 上。如果可以,输出达到目标所需的最小操作次数。如果无法到达则输出 $-1$。
输入格式
输入按以下格式通过标准输入给出。
> $H$ $W$
> $S_1$
> $S_2$
> $\vdots$
> $S_H$
输出格式
如果无法把棋子移动到格子 $(H,W)$,请输出 $-1$。如果可以,则输出将棋子移动到格子 $(H,W)$ 所需的最小操作次数。
说明/提示
### 样例解释 1
可以依次将棋子从 $(1,1)$ 移动到 $(2,1)$,再到 $(2,2)$,然后到 $(1,2)$、$(1,3)$、$(1,4)$、$(2,4)$,最后到 $(3,4)$。
这种情况下操作次数为 $7$,并且无法用少于 $7$ 次操作将棋子移动到 $(3,4)$。因此,输出 $7$。
### 样例解释 2
无法将棋子移动到 $(2,2)$。因此,输出 $-1$。
### 数据范围
- $2\le H\le 1000$
- $2\le W\le 1000$
- $H,W$ 为整数
- $S_i$ 是由 `E`、`F`、`G` 组成的长度为 $W$ 的字符串。
由 ChatGPT 5 翻译