问题 5568 --曼哈顿距离之和

5568: 曼哈顿距离之和★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 44  解决: 19
[提交][状态][命题人:]

题目描述

明明同学有一个大小为n×m的表格,行编号从1n,列编号从1m。每个单元格都有一种颜色,可以表示为1105的整数。

我们将位于第r行和第c列的单元格表示为(r,c)。我们将两个单元格(r1,c1)(r2,c2)之间的曼哈顿距离定义为它们之间最短路径的长度,其中路径上的每个连续单元格必须有一个公共边。路径可以穿过任何颜色的单元格。例如,在一个3×4的表格中,单元格(1,2)和单元格(3,3)之间的曼哈顿距离为3,其中一条最短路径为:(1,2)→(2,2)→(2,3)→(3,3)

明明同学决定计算每对相同颜色的单元格之间的曼哈顿距离之和。请你帮助明明同学计算该和值并输出该值。

输入

第一行共两个整数:nm1<=n<=m,n*m<=105

接下来共n行,每行m个整数。第i行的m个整数可表示为:ci1, ci2, ……, cij,……,cim,(1<=cij<=105), 表示对应单元格的颜色值。

输出

一行一个整数:所有颜色值相同的两个单元格之间的曼哈顿距离之和。

样例输入
Copy
2 3
1 2 3
3 2 1
样例输出
Copy
7

提示

样例2输入:

3 4

1 1 2 2

2 1 1 2

2 2 1 1

样例2输出:

76

样例3输入:

4 4

1 1 2 3

2 1 1 2

3 1 2 1

1 1 2 1

样例3输出:

129

提示:(1)在第一个测试样例中,共由三对单元格的颜色值相同,分别为(1,1)和(2,3);(1,2)和(2,2);(1,3)和(2,1)。它们的距离值分别为3,1,3,所有曼哈顿距离之和为3+1+3=7.

(2) 由于数据量较大,暴力会超时哦。

来源

 

[提交][状态]