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 翻译