#299. 二阶矩阵

二阶矩阵

二阶矩阵

题目描述

小 A 有一个 nnmm 列的矩阵 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 子矩阵共有 (31)×(41)=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 = 42×2=42 \times 2 = 4,两者相等,是一个好的子矩阵。

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

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

数据范围

对于所有测试点,保证 1n5001 \le n \le 5001m5001 \le m \le 500100Ai,j100-100 \le A_{i,j} \le 100