#ABC276E. 回路

回路

回路

题目描述

我们有一个从上到下 HH 行、从左到右 WW 列的网格。设 (i,j)(i, j) 表示从上数第 ii(1iH)(1 \leq i \leq H)、从左数第 jj(1jW)(1 \leq j \leq W) 的方格。

每个方格是以下三种之一:起点、道路、障碍物。

方格 (i,j)(i, j) 用字符 Ci,jC_{i, j} 表示。若 Ci,j=C_{i, j} = S 则为起点,若 Ci,j=C_{i, j} = . 则为道路,若 Ci,j=C_{i, j} = # 则为障碍物。恰好有一个起点。

判断是否存在一条长度至少为 44 的路径:从起点出发,反复向上下左右相邻的方格移动,最后回到起点,且途中不经过障碍物,也不重复访问同一方格(起点和终点除外)。

更正式地说,判断是否存在整数 nn 和方格序列 (x0,y0),(x1,y1),,(xn,yn)(x_0, y_0), (x_1, y_1), \dots, (x_n, y_n) 满足以下条件。

n4n \geq 4

Cx0,y0=Cxn,yn=C_{x_0, y_0} = C_{x_n, y_n} = S

1in11 \leq i \leq n - 1,则 Cxi,yi=C_{x_i, y_i} = .

1i<jn11 \leq i \lt j \leq n - 1,则 (xi,yi)(xj,yj)(x_i, y_i) \neq (x_j, y_j)

0in10 \leq i \leq n - 1,则方格 (xi,yi)(x_i, y_i) 与方格 (xi+1,yi+1)(x_{i+1}, y_{i+1}) 上下左右相邻。

输入格式

输入按以下格式从标准输入给出:

HH WW
C1,1C1,WC_{1, 1} \ldots C_{1, W}
\vdots
CH,1CH,WC_{H, 1} \ldots C_{H, W}

输出格式

如果存在满足题目描述中条件的路径,输出 Yes;否则输出 No。

样例

4 4
....
#.#.
.S..
.##.
Yes

路径 $(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)$ 满足条件。

2 2
S.
.#
No
5 7
.#...#.
..#.#..
...S...
..#.#..
.#...#.
No

数据范围

  • 4H×W1064 \leq H \times W \leq 10^6
  • HHWW 是大于等于 22 的整数。
  • Ci,jC_{i, j} 是 S、. 或 #。
  • 恰好存在一个 (i,j)(i, j) 使得 Ci,j=C_{i, j} = S。
难度 提高
通过率
尝试 0
已通过 0
ID
2532
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签