#P5781. [IOI2019] 矩形区域

[IOI2019] 矩形区域

题目背景

滥用本题评测将封号!

题目描述

19 世纪初,统治者下令在俯瞰美丽河景的高原上建造一座宫殿。这块高原被看做是一个由正方形单元格组成的 n×mn \times m 网格。网格的行从 00n1n-1 编号,列从 00m1m-1 编号。第 ii 行第 jj 列(0in10 \le i \le n-10jm10 \le j \le m-1)的单元格记为单元格 (i,j)(i,j)。每个单元格 (i,j)(i,j) 有特定的海拔高度,记为 ai,ja_{i,j}

统治者指示他的建筑师选择一个矩形区域来建造宫殿。该区域不能包含网格边界(第 00 行,第 n1n-1 行,第 00 列,以及第 m1m-1 列)上的任何单元格。为此,建筑师应选出四个整数 r1r_1r2r_2c1c_1c2c_21r1r2n21 \le r_1 \le r_2 \le n-21c1c2m21 \le c_1 \le c_2 \le m-2 ),对应于包括所有满足 r1ir2r_1 \le i \le r_2c1jc2c_1 \le j \le c_2 的单元格 (i,j)(i,j) 的矩形区域。

此外,一个区域被认为是合法的,当且仅当对于该区域中的每个单元格 (i,j)(i,j),以下条件成立:对于与该区域相邻的、位于第 ii 行的两个单元格(单元格 (i,c11)(i,c_1-1)(i,c2+2)(i,c_2+2)),以及与该区域相邻的、位于第 jj 列的两个单元格(单元格 (r11)(r_1-1)(r2+2,j)(r_2+2,j)),单元格 (i,j)(i,j) 的海拔高度必须严格小于这四个单元格的海拔高度。

你的任务是帮助建筑师统计可建宫殿的合法区域的数量(也就是所对应区域为合法的 r1r_1r2r_2c1c_1c2c_2 的数量)。

输入格式

第一行,两个整数 nnmm,表示网格的长和宽。

接下来 nn 行,第 iimm 个整数,为 ai1,0m1a_{i-1,0\dots m-1}

输出格式

一行,一个整数,表示合法区域的数量。

6 5
4 8 7 5 6
7 4 10 3 5
9 7 20 14 2
9 14 7 3 6
5 7 5 2 7
4 5 13 5 6
6

提示

样例解释

一共有 66 个合法区域,分别为:

  • r1=r2=1,c1=c2=1r_1=r_2=1, c_1=c_2=1
  • r1=1,r2=2,c1=c2=1r_1=1, r_2=2, c_1=c_2=1
  • r1=r2=1,c1=c2=3r_1=r_2=1, c_1=c_2=3
  • r1=r2=4,c1=2,c2=3r_1=r_2=4, c_1=2,c_2=3
  • r1=r2=4,c1=c2=3r_1=r_2=4, c_1=c_2=3
  • r1=3,r2=4,c1=c2=3r_1=3,r_2=4,c_1=c_2=3

例如,r1=1,r2=2,c1=c2=1r_1=1, r_2=2, c_1=c_2=1 对应一个合法区域,原因是以下两个条件都成立:

  • a1,1=4a_{1,1}=4 严格小于 a0,1=8a_{0,1}=8a3,1=14a_{3,1}=14a1,0=7a_{1,0}=7,和 a1,2=10a_{1,2}=10
  • a2,1=7a_{2,1}=7 严格小于 a0,1=8a_{0,1}=8a3,1=14a_{3,1}=14a2,0=9a_{2,0}=9,和 a2,2=20a_{2,2}=20

数据范围

对于所有数据:

  • 1n,m25001 \le n, m \le 2500
  • $0 \le a_{i,j} \le 7 \times 10^6 (0 \le i \le n - 1, 0 \le j \le m - 1)$。

详细子任务附加限制与分值如下表:

子任务编号 附加限制 分值
11 n,m30n, m \le 30 88
22 n,m80n, m \le 80 77
33 n,m200n, m \le 200 1212
44 n,m700n, m \le 700 2222
55 n3n \le 3 1010
66 0ai,j10 \le a_{i,j} \le 1 1313
77 没有任何附加限制 2828