#t141. 二阶矩阵

二阶矩阵

二阶矩阵

题目描述

小 A 有一个 nn 行 mm 列的矩阵 AA。

小 A 认为一个 2×22 \times 2 的矩阵 DD 是好的,当且仅当 D1,1×D2,2=D1,2×D2,1D_{1,1} \times D_{2,2} = D_{1,2} \times D_{2,1}。其中 Di,jD_{i,j} 表示矩阵 DD 的第 ii 行第 jj 列的元素。

小 A 想知道 AA 中有多少个好的子矩阵。

输入格式

第一行,两个正整数 n,mn, m。

接下来 nn 行,每行 mm 个整数 Ai,1,Ai,2,…,Ai,mA_{i,1}, A_{i,2}, \ldots, A_{i,m}。

输出格式

一行,一个整数,表示 AA 中好的子矩阵的数量。

样例输入

3 4
1 2 1 0
2 4 2 1
0 3 3 0

样例输出

2

样例解释

在给出的 3×43 \times 4 矩阵中,所有可能的 2×22 \times 2 子矩阵共有 (3−1)×(4−1)=6(3-1)\times(4-1)=6 个。我们逐一检查这些子矩阵是否满足条件 D1,1×D2,2=D1,2×D2,1D_{1,1} \times D_{2,2} = D_{1,2} \times D_{2,1}。

以第 11 行第 11 列为左上角的子矩阵为: [1224]\begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix},计算得 1×4=41 \times 4 = 4,2×2=42 \times 2 = 4,两者相等,是一个好的子矩阵。

以第 11 行第 22 列为左上角的子矩阵为: [2142]\begin{bmatrix} 2 & 1 \\ 4 & 2 \end{bmatrix},计算得 2×2=42 \times 2 = 4,1×4=41 \times 4 = 4,两者相等,也是一个好的子矩阵。

其余四个子矩阵经过计算均不满足乘积相等的条件,因此总共有 22 个好的子矩阵。

数据范围

对于所有测试点,保证 1≤n≤5001 \le n \le 500,1≤m≤5001 \le m \le 500,−100≤Ai,j≤100-100 \le A_{i,j} \le 100。