AT_abc276_e [ABC276E] Round Trip
题目描述
有一个高 $H$ 行、宽 $W$ 列的网格,从上到下第 $i$ 行、从左到右第 $j$ 列的格子记作 $(i, j)$。
每个格子可能是“起点”、“道路”或“障碍物”之一。
格子 $(i, j)$ 的状态用字符 $C_{i, j}$ 表示,若 $C_{i, j} = \texttt{S}$,则为起点;若 $C_{i, j} = \texttt{.}$,则为道路;若 $C_{i, j} = \texttt{\#}$,则为障碍物。起点格子仅有一个。
请判断是否存在一条从起点出发,只能上下左右移动、且不经过障碍物,最终回到起点的长度不少于 $4$ 的路径,并且除起点外路径上不重复经过同一个格子。
更严格地说,判断是否存在满足以下条件的整数 $n$ 和格子序列 $(x_0, y_0), (x_1, y_1), \dots, (x_n, y_n)$:
- $n \geq 4$
- $C_{x_0, y_0} = C_{x_n, y_n} = \texttt{S}$
- 对于 $1 \leq i \leq n-1$,有 $C_{x_i, y_i} = \texttt{.}$
- 对于 $1 \leq i < j \leq n-1$,有 $(x_i, y_i) \neq (x_j, y_j)$
- 对于 $0 \leq i \leq n-1$,格子 $(x_i, y_i)$ 与 $(x_{i+1}, y_{i+1})$ 必须在上下或左右相邻
输入格式
输入按以下格式从标准输入读入。
> $H$ $W$
> $C_{1, 1} \ldots C_{1, W}$
> $\vdots$
> $C_{H, 1} \ldots C_{H, W}$
输出格式
如果存在满足题意的路径,输出 `Yes`,否则输出 `No`。
说明/提示
## 限制
- $4 \leq H \times W \leq 10^6$
- $H, W$ 均为不小于 $2$ 的整数
- $C_{i, j}$ 只会是 `S`、`.`、`#` 之一
- 仅有一个格子 $C_{i, j} = \texttt{S}$
## 样例解释 1
存在如下路径满足条件:
$(3, 2) \rightarrow (2, 2) \rightarrow (1, 2) \rightarrow (1, 3) \rightarrow (1, 4) \rightarrow (2, 4) \rightarrow (3, 4) \rightarrow (3, 3) \rightarrow (3, 2)$。
由 ChatGPT 4.1 翻译