AT_arc205_a [ARC205A] 2x2 Erasing

题目描述

有一个 $N$ 行 $N$ 列的网格。用 $(r,c)$ 表示从上到下第 $r$ 行、从左到右第 $c$ 列的格子。每个格子被染成黑色或白色。当 $S_{r,c}$ 为 `#` 时,格子 $(r,c)$ 被染成黑色;当 $S_{r,c}$ 为 `.` 时,格子 $(r,c)$ 被染成白色。 你会被给出 $Q$ 个关于这个网格的问题,请分别回答每一个问题。在第 $i$ 个问题中($1 \le i \le Q$),给定整数 $U_i,D_i,L_i,R_i$,请回答如下问题。 - 将所有不满足 $U_i \le r \le D_i$ 且 $L_i \le c \le R_i$ 的格子全部染成黑色后,最多可以执行多少次下述操作? - 选择一对整数 $(r,c)$,使得格子 $(r,c),(r,c+1),(r+1,c),(r+1,c+1)$ 都为白色,并将这四个格子中的任意一个染成黑色。 注意每个问题独立进行。换言之,每次询问都要从初始状态开始重新计算每个格子的颜色。

输入格式

输入从标准输入读入,格式如下: > $N$ $Q$ > $S_{1,1}S_{1,2}\ldots S_{1,N}$ > $S_{2,1}S_{2,2}\ldots S_{2,N}$ > $\vdots$ > $S_{N,1}S_{N,2}\ldots S_{N,N}$ > $U_1$ $D_1$ $L_1$ $R_1$ > $U_2$ $D_2$ $L_2$ $R_2$ > $\vdots$ > $U_Q$ $D_Q$ $L_Q$ $R_Q$

输出格式

输出 $Q$ 行。 第 $i$ 行($1 \le i \le Q$)应输出第 $i$ 个问题的答案。

说明/提示

## 样例解释 1 以第一个问题为例。 把所有不满足 $1 \le r \le 3$ 且 $1 \le c \le 3$ 的格子全部染成黑色后,网格如下所示: ``` ..### ...## #..## ##### ##### ``` 在该网格上,你可以执行两次操作,具体如下: - 选择 $(r,c)=(1,1)$。在格子 $(1,1),(1,2),(2,1),(2,2)$ 中,任选一个,比如将 $(1,2)$ 染成黑色。 - 选择 $(r,c)=(2,2)$。在格子 $(2,2),(2,3),(3,2),(3,3)$ 中,任选一个,比如将 $(2,2)$ 染成黑色。 无法再执行更多操作,因此第一行输出 $2$。 ## 约束条件 - $2\le N\le 500$ - $1\le Q\le 2\times 10^5$ - $S_{r,c}$ 仅为 `.` 或 `#`。 - $1\le U_i < D_i \le N$ - $1\le L_i < R_i \le N$ - $N,Q,U_i,D_i,L_i,R_i$ 均为整数。 由 ChatGPT 5 翻译