AT_past20_j グリッドの禁止パターン
题目描述
给定一个 $N \times N$ 的网格,共有 $N$ 行 $N$ 列。$(i, j)$ 表示第 $i$ 行第 $j$ 列的格子。初始时,每个格子被涂成黑色或白色:若 $S_{i, j}$ 为 `#`,则格子 $(i, j)$ 为黑色;若 $S_{i, j}$ 为 `.`,则为白色。
你可以多次选择一个格子,并将其涂成黑色,使得整个网格满足以下条件:
- 对于任意一个白色格子 $(x, y)$,其上下左右相邻的格子(即 $(x - 1, y)$、$(x + 1, y)$、$(x, y - 1)$、$(x, y + 1)$,不存在的位置无需考虑)中,最多只有两个被涂成黑色。
至少需要多少次操作才能使网格满足条件?
输入格式
输入由标准输入给出,格式如下:
> $N$
> $S_{1,1}S_{1,2}\cdots S_{1,N}$
> $S_{2,1}S_{2,2}\cdots S_{2,N}$
> $\vdots$
> $S_{N,1}S_{N,2}\cdots S_{N,N}$
输出格式
输出一行,表示满足条件所需的最少操作次数。
说明/提示
### 样例解释 1
$(2, 2)$ 格子为白色,其上下左右四个相邻格子均为黑色。只需将 $(2,2)$ 涂黑即可使网格满足条件。
### 样例解释 2
只需将 $(2,2)$ 涂黑即可使网格满足条件。
### 样例解释 3
只有将所有白色格子都涂成黑色才能使网格满足条件。
### 约束条件
- $1 \leq N \leq 2000$
- $S_{i, j}$ 仅为 `.` 或 `#`。
由 ChatGPT 5 翻译