AT_abc424_d.[ABC424D] 2x2 Erasing 2

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个由 HH 行 WW 列组成的网格,每个格子要么是白色,要么是黑色。
我们用第 ii 行(自上而下,1≤i≤H1\leq i\leq H)、第 jj 列(自左而右,1≤j≤W1\leq j\leq W)的格子,记作格子 (i,j)(i,j)。
网格的状态由 HH 个长度为 WW 的字符串 S1,S2,…,SHS_1,S_2,\ldots,S_H 给出,每个字符串只包含字符 . 和 #。
如果 SiS_i 的第 jj 个字符是 .,则格子 (i,j)(i,j) 是白色;如果是 #,则格子 (i,j)(i,j) 是黑色。

高桥希望通过将一些黑色格子(可以为零个)变为白色,使整个网格中不存在仅由黑色格子组成的 2×22\times 2 子网格。更具体地说,要满足下面的条件:

对于任意整数对 (i,j)(i,j),其中 1≤i≤H−11\leq i\leq H-1 且 1≤j≤W−11\leq j\leq W-1,在格子 (i,j)(i,j)、(i,j+1)(i,j+1)、(i+1,j)(i+1,j) 和 (i+1,j+1)(i+1,j+1) 中,至少有一个是白色的。

请计算至少需要将多少个黑色格子变为白色,才能使高桥达成目标。

输入包含 TT 组测试用例。请分别输出每组测试用例的答案。

输入格式

输入按如下格式给出:

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
⋮\vdots
caseT\mathrm{case}_T

每组测试用例的格式为:

HH WW
S1S_1
S2S_2
⋮\vdots
SHS_H

输出格式

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

输入输出样例

  • 输入#1

    2
    5 5
    ####.
    ##.##
    #####
    .####
    ##.#.
    2 2
    ..
    ..

    输出#1

    3
    0

说明/提示

样例解释 1

对于第一个测试用例,初始网格如下图左所示。
例如,将右图中标有数字的三个黑色格子变为白色即可满足条件。

无法通过涂白两格或更少格子就满足题意,所以第一组输出应为 33。

对于第二组测试用例,初始网格已经满足条件,因此输出 00。

数据范围

  • 1≤T≤1001\leq T\leq 100
  • 2≤H≤72\leq H\leq 7
  • 2≤W≤72\leq W\leq 7
  • 每个 SiS_i 是长度为 WW,由 . 和 # 组成的字符串。
  • T,H,WT,H,W 均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页