U188718 k 倍子矩形

题目描述

给定一个 $n\times m$ 的矩阵,其第 $i$ 行第 $j$ 列数字记作 $a_{i,j}$。 求这个矩阵有多少非空子矩阵 $(l,u,r,d)$,满足子矩阵内的数字的和是k的倍数。 换句话说,有多少 $(l,u,r,d)$ 满足: $$ 1\le l\le r\le n,1\le u\le d\le m\\ k\ \left|\ \left(\sum_{l\le i\le r}\sum_{u\le j\le d}a_{i,j}\right)\right. $$ 其中 $k\ |\ s$ 表示 $k$ 整除 $s$ ,即 $s$ 是 $k$ 的倍数。

输入格式

第一行三个整数 $n,m,k$; 接下来 $n$ 行,每行 $m$ 个数字,表示矩阵 $(a_{i,j})$。

输出格式

一行一个整数表示答案。

说明/提示

#### 样例解释 容易验证,仅有下述子矩阵满足条件: $$ (1, 1, 1, 3),\ (1, 1, 2, 2),\ (1, 2, 1, 2),\ (1, 2, 2, 3),\ (2, 1, 2, 1),\ (2, 3, 2, 3) $$ 故答案为 $6$ 。 #### 数据范围 对于 $20\%$ 的数据,$n,m\le 16$; 存在另外 $5\%$ 的数据, $m=1$; 存在另外 $5\%$ 的数据,$m=2$; 存在另外 $20\%$ 的数据,$k=2$; 存在另外 $10\%$ 的数据,所有 $a_{i,j}$ 均相等; 存在另外 $20\%$ 的数据,$n,m\le 100$; 对于 $100\%$ 的数据,$1\le n,m\le 400,2\le k\le 10^6,1\le a_{i,j}\le k$。