#LQ1323. 最大子矩阵

最大子矩阵

问题描述

小明有一个大小为 N×MN \times M 的矩阵, 可以理解为一个 NNMM 列的二维数组。 我们定义一个矩阵 mm 的稳定度 f(m)f(m)f(m)=max(m)min(m)f(m)=\max (m)-\min (m), 其中 max(m)\max (m) 表示矩阵 mm 中的最大值, min(m)\min (m) 表示矩阵 mm 中的最小值。现在小明想要从这个矩阵中找到一个稳定度不大于 limitlimit 的子矩阵, 同时他还希望这个子矩阵的面积越大越好 (面积可以理解为矩阵中元素个数)。

子矩阵定义如下: 从原矩阵中选择一组连续的行和一组连续的列, 这些行列交点上的元素组成的矩阵即为一个子矩阵。

输入格式

第一行输入两个整数 NN, MM, 表示矩阵的大小。

接下来 NN 行, 每行输入 MM 个整数,表示这个矩阵。

最后一行输入一个整数 limitlimit, 表示限制。

输出格式

输出一个整数. 分别表示小明选择的子矩阵的最大面积。

3 4
2 0 7 9
0 6 9 7
8 4 6 4
8
6

样例说明

满足稳定度不大于 8 的且面积最大的子矩阵总共有三个, 他们的面积都是 6 (粗体表示子矩阵元素)

2 0 7 9

0 6 9 7

8 4 6 4

2 0 7 9

0 6 9 7

8 4 6 4

2 0 7 9

0 6 9 7

8 4 6 4

评测用例规模与约定

样例组成:

有10%的评测用例, 1N101M101 \leq N \leq 10,1 \leq M \leq 10

有10%的评测用例, N=1M100000N=1,M \leq 100000

有40%的评测用例, 1N101M1000001 \leq N \leq 10,1 \leq M \leq 100000

有40%的评测用例, 1N801M801 \leq N \leq 80,1 \leq M \leq 80

对于所有评测用例, 00 \leq 矩阵元素值, limit105limit \leq 10^{5}