AT_abc461_d [ABC461D] Count Subgrid Sum = K

题目描述

有一个 $H \times W$ 的网格,每个格子里写有一个整数 $0$ 或 $1$。 每个格子中的整数信息通过 $H$ 个长度为 $W$ 的字符串 $S_1, S_2, \dots, S_H$ 给出。如果 $S_i$ 的第 $j$ 个字符是 `0`,那么第 $i$ 行第 $j$ 列的格子中写的是 $0$;如果是 `1`,写的是 $1$。 请计算有多少个矩形区域,其区域内所有格子中整数的和等于 $K$。 更正式地说,计算有多少组整数四元组 $(r_1, c_1, r_2, c_2)$ 满足如下所有条件: - $1 \le r_1 \le r_2 \le H$ - $1 \le c_1 \le c_2 \le W$ - 所有满足 $r_1 \le i \le r_2, c_1 \le j \le c_2$ 的 $(i, j)$,其所对应格子里的整数之和正好等于 $K$。

输入格式

输入从标准输入读取,格式如下: > $H$ $W$ $K$ $S_1$ $S_2$ $\vdots$ $S_H$

输出格式

输出满足条件的矩形区域个数。

说明/提示

## 样例解释 1 有八个矩形区域,其区域内所有格子中整数的和等于 $K$: - 从第 $1$ 行到第 $2$ 行,第 $1$ 列到第 $2$ 列的矩形区域 - 从第 $1$ 行到第 $2$ 行,第 $1$ 列到第 $3$ 列的矩形区域 - 从第 $1$ 行到第 $2$ 行,第 $2$ 列到第 $4$ 列的矩形区域 - 从第 $1$ 行到第 $3$ 行,第 $2$ 列到第 $3$ 列的矩形区域 - 从第 $1$ 行到第 $3$ 行,第 $3$ 列到第 $4$ 列的矩形区域 - 从第 $2$ 行到第 $2$ 行,第 $1$ 列到第 $4$ 列的矩形区域 - 从第 $2$ 行到第 $3$ 行,第 $1$ 列到第 $2$ 列的矩形区域 - 从第 $2$ 行到第 $3$ 行,第 $2$ 列到第 $3$ 列的矩形区域 ## 限制 - $H$ 和 $W$ 是 $1$ 到 $500$ 之间的整数。 - $K$ 是 $0$ 到 $HW$ 之间的整数。 - $S_i$ 是长度为 $W$ 的、仅由 `0` 和 `1` 组成的字符串。 由 ChatGPT 5 翻译