独特的方格
题号:NC308086
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小灰灰有一个 nm 列的彩色方格图,我们使用 (i,j) 表示网格中从上往下数第 i 行和从左往右数第 j 列的单元格。每个单元格中都有一个整数,使用 c_{i,j} 代表 (i,j) 这个单元格中的颜色。
\hspace{15pt}小蓝想考一考小灰灰,小灰灰需要回答这个方格图里有多少个子矩形中不包含相同颜色的点。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 100\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入两个整数 n, m \left(1\leq n, m, n \times m \leq 10^5\right),表示方格图的行数、列数。
\hspace{15pt}此后 n 行,第 i 行输入 m 个整数 c_{i,1}, c_{i,2}, \dots, c_{i,m} \left(1\leq c_{i,j} \leq n \times m\right),表示第 i 行的颜色序列。

\hspace{15pt}除此之外,保证单个测试文件的 n \times m 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出一个整数代表答案。
示例1

输入

复制
3
2 2
3 2
2 4
2 3
3 4 5
5 6 1
3 3
1 2 3
4 5 6
7 8 9

输出

复制
8
17
36