AT_abc424_d [ABC424D] 2x2 Erasing 2

题目描述

给定一个由 $H$ 行 $W$ 列组成的网格,每个格子要么是白色,要么是黑色。 我们用第 $i$ 行(自上而下,$1\leq i\leq H$)、第 $j$ 列(自左而右,$1\leq j\leq W$)的格子,记作格子 $(i,j)$。 网格的状态由 $H$ 个长度为 $W$ 的字符串 $S_1,S_2,\ldots,S_H$ 给出,每个字符串只包含字符 `.` 和 `#`。 如果 $S_i$ 的第 $j$ 个字符是 `.`,则格子 $(i,j)$ 是白色;如果是 `#`,则格子 $(i,j)$ 是黑色。 高桥希望通过将一些黑色格子(可以为零个)变为白色,使整个网格中不存在仅由黑色格子组成的 $2\times 2$ 子网格。更具体地说,要满足下面的条件: > 对于任意整数对 $(i,j)$,其中 $1\leq i\leq H-1$ 且 $1\leq j\leq W-1$,在格子 $(i,j)$、$(i,j+1)$、$(i+1,j)$ 和 $(i+1,j+1)$ 中,**至少有一个是白色的**。 请计算至少需要将多少个黑色格子变为白色,才能使高桥达成目标。 输入包含 $T$ 组测试用例。请分别输出每组测试用例的答案。

输入格式

输入按如下格式给出: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每组测试用例的格式为: > $H$ $W$ > $S_1$ > $S_2$ > $\vdots$ > $S_H$

输出格式

输出 $T$ 行,第 $i$ 行($1\leq i\leq T$)输出第 $i$ 组测试用例的答案。

说明/提示

### 样例解释 1 对于第一个测试用例,初始网格如下图左所示。 例如,将右图中标有数字的三个黑色格子变为白色即可满足条件。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_abc424_d/df3e4d34400fc7b442c314b1d8e7cc840ed20ca7f0582dca1c07b94b53e101de.png) 无法通过涂白两格或更少格子就满足题意,所以第一组输出应为 $3$。 对于第二组测试用例,初始网格已经满足条件,因此输出 $0$。 ### 数据范围 - $1\leq T\leq 100$ - $2\leq H\leq 7$ - $2\leq W\leq 7$ - 每个 $S_i$ 是长度为 $W$,由 `.` 和 `#` 组成的字符串。 - $T,H,W$ 均为整数。 由 ChatGPT 5 翻译