[JOI 2022 Final] 沙堡 2 (Sandcastle 2)

题目描述

JOI 君在沙滩上玩耍。他建造了一座沙堡。这座由 JOI 君建造的沙堡位于沙滩上的一个矩形区域内。这个矩形区域有 $H$ 行 $W$ 列。位于从上往下的第 $i$ 行、从左往右的第 $j$ 列的格子的高度为 $A_{i, j}$。**注意所有 $\boldsymbol{A_{i, j}}$ 的值互不相同。** 在沙堡上,JOI 君执行了下列动作。 1. 首先,JOI 君选择一个格子,他从该格子开始移动。 2. 然后,他从当前格子出发朝上下左右四个方向之一移动到相邻的格子上。他必须移动到低于当前格子的格子上。他可以重复此动作零次或更多次。 最终,如果我们从上往下看,他经过的格子将形成一个矩形。 给定每个格子的高度信息 $A_{i, j}$,写一个程序计算所有可能的由 JOI 君经过的格子组成的矩形的数量。

输入输出格式

输入格式


第一行,两个正整数 $H, W$。 接下来 $H$ 行,第 $i$ 行 $W$ 个正整数 $A_{i, 1}, A_{i, 2}, \ldots, A_{i, W}$。

输出格式


输出一行,一个数,表示所有可能的由 JOI 君经过的格子组成的矩形的数量。

输入输出样例

输入样例 #1

1 5
2 4 7 1 5

输出样例 #1

10

输入样例 #2

3 2
18 10
19 12
17 13

输出样例 #2

15

输入样例 #3

3 5
83 47 36 38 40
13 10 26 68 67
15 19 20 70 90

输出样例 #3

65

说明

**【样例解释 \#1】** 由于有 $10$ 个可能的由 JOI 君经过的格子组成的矩形,输出 $10$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/ctry6t23.png) 这个样例满足所有子任务的限制。 **【样例解释 \#2】** 由于有 $15$ 个可能的由 JOI 君经过的格子组成的矩形,输出 $15$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/2zaim5fy.png) 这个样例满足子任务 $2, 3, 4, 5$ 的限制。 **【样例解释 \#3】** 举个例子,如下矩形可以由 JOI 君经过的格子组成。由于总共有 $65$ 个可能的矩形,输出 $65$。 ![](https://cdn.luogu.com.cn/upload/image_hosting/q6y9c6d5.png) 这个样例满足子任务 $2, 3, 4, 5$ 的限制。 ---- **【数据范围】** **本题采用捆绑测试。** 对于 $100 \%$ 的数据,$1 \le H, W, H \cdot W \le 5 \times {10}^4$,$1 \le A_{i, j} \le {10}^7$,$A_{i_1, j_1} \ne A_{i_2, j_2}$($(i_1, j_1) \ne (i_2, j_2)$)。 - 子任务 $1$($9$ 分):$H = 1$。 - 子任务 $2$($10$ 分):$H \cdot W \le 100$。 - 子任务 $3$($5$ 分):$H \cdot W \le 1500$。 - 子任务 $4$($56$ 分):$H \cdot W \le 7000$。 - 子任务 $5$($20$ 分):无特殊限制。 ---- **译自 [JOI 2022 Final](https://www.ioi-jp.org/joi/2021/2022-ho/index.html) T5「[砂の城 2 ](https://www.ioi-jp.org/joi/2021/2022-ho/2022-ho-t5.pdf) / [Sandcastle 2](https://www.ioi-jp.org/joi/2021/2022-ho/2022-ho-t5-en.pdf)」**