AT_abc420_f [ABC420F] kirinuki
题目描述
给定一个 $N \times M$ 的网格。每个格子中包含 `.` 或 `#`。
关于每个格子的符号信息由 $N$ 个字符串 $S_1,S_2,\dots,S_N$ 给出,其中 $S_i$ 的第 $j$ 个字符表示从上往下第 $i$ 行、从左往右第 $j$ 列的格子中写的符号。
请你计算有多少个至多包含 $K$ 个格子的矩形区域,且该区域内所有格子均为 `.`。
形式化地,计算满足以下条件的整数四元组 $(l_x,r_x,l_y,r_y)$ 的个数:
- $1 \le l_x \le r_x \le N$
- $1 \le l_y \le r_y \le M$
- $(r_x-l_x+1) \times (r_y-l_y+1) \le K$
- 对于所有满足 $l_x \le i \le r_x$ 且 $l_y \le j \le r_y$ 的整数对 $(i,j)$,第 $i$ 行第 $j$ 列的格子中为 `.`。
输入格式
输入按如下格式从标准输入给出:
> $N$ $M$ $K$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
输出格式
输出满足条件的矩形区域的个数。
说明/提示
## 样例解释 1
需要计数的 $19$ 个矩形区域如下:
- 由 $(l_x,r_x,l_y,r_y) = (1,2,2,3)$ 表示的矩形区域
- 由 $(l_x,r_x,l_y,r_y) = (2,3,1,2)$ 表示的矩形区域
- 由 $(l_x,r_x,l_y,r_y) = (2,2,1,3)$ 表示的矩形区域
- 由 $(l_x,r_x,l_y,r_y) = (1,3,2,2)$ 表示的矩形区域
- $4$ 个仅包含 `.` 的 $1$ 行 $2$ 列的矩形区域
- $4$ 个仅包含 `.` 的 $2$ 行 $1$ 列的矩形区域
- $7$ 个仅包含 `.` 的 $1$ 行 $1$ 列的矩形区域
## 数据范围
- $N$、$M$、$K$ 均为整数。
- $1 \le N, M \le 5 \times 10^5$
- $1 \le N \times M \le 5 \times 10^6$
- $1 \le K \le N \times M$
- $S_i$ 是长度为 $M$ 的、仅包含 `.` 和 `#` 的字符串。
由 ChatGPT 4.1 翻译