AT_abc422_b [ABC422B] Looped Rope

题目描述

有一个 $H$ 行 $W$ 列的网格。用 $(i,j)$ 表示第 $i$ 行($1\le i\le H$,自上而下)第 $j$ 列($1\le j\le W$,自左而右)的格子。 每个格子被涂成白色或黑色。每个格子的颜色用 $H$ 个字符串 $S_1,S_2,\ldots,S_H$ 表示。当 $S_i$ 的第 $j$ 个字符($1\le j\le W$)为 `.` 时,$(i,j)$ 格子为白色;当 $S_i$ 的第 $j$ 个字符为 `#` 时,$(i,j)$ 格子为黑色。 判断该网格是否满足以下条件: - 对于每一个黑色格子,所有与它水平或垂直相邻的黑色格子的数量为 $2$ 或 $4$。 这里,$(i,j)$ 和 $(k,l)$ 两个格子当且仅当 $|i-k|+|j-l|=1$ 时彼此水平或垂直相邻。

输入格式

输入由标准输入给出,格式如下: > $H$ $W$ > $S_1$ > $S_2$ > $\vdots$ > $S_H$

输出格式

如果给定的网格满足条件,输出 `Yes`;否则输出 `No`。

说明/提示

### 样例解释 1 例如,格子 $(6,3)$ 是黑色的,在它相邻的格子 $(5,3),(6,2),(6,4),(7,3)$ 中,$(5,3)$ 和 $(6,4)$ 是黑色的,所以相邻黑色格子有 $2$ 个,满足条件。 其它黑色格子也都满足条件,因此输出 `Yes`。 ### 样例解释 2 格子 $(1,1)$ 是黑色,但它只有一个相邻的格子,所以不满足条件。 因此输出 `No`。 ### 样例解释 3 没有黑色格子,所以条件成立。 因此输出 `Yes`。 ### 数据范围 - $1\le H\le 20$ - $1\le W\le 20$ - $H$ 和 $W$ 为整数 - $S_i$ 是长度为 $W$ 只包含 `.` 和 `#` 的字符串($1\le i\le H$) 由 ChatGPT 5 翻译