P11845 [USACO25FEB] Min Max Subarrays P
题目描述
**注意:本题的时间限制为 3 秒,通常限制的 1.5 倍。**
给定一个长为 $N$ 的整数数组 $a_1,a_2,\dots,a_N$($2\le N \le 10^6$,$1\le a_i\le N$)。输出所有 $N(N+1)/2$ 个 $a$ 的连续子数组的以下子问题的答案之和。
给定一个非空整数列表,交替执行以下操作(从第一个操作开始)直到列表大小恰好为一。
1. 将列表内的两个相邻整数替换为它们的较小值。
1. 将列表内的两个相邻整数替换为它们的较大值。
求最终余下的整数的最大可能值。
例如,
$[4, 10, 3] \to [4, 3] \to [4]$
$[3, 4, 10] \to [3, 10] \to [10]$
在第一个数组中,$(10, 3)$ 被替换为 $\min(10, 3)=3$,随后 $(4, 3)$ 被替换为 $\max(4, 3)=4$。
输入格式
输入的第一行包含 $N$。
第二行包含 $a_1,a_2,\dots,a_N$。
输出格式
输出所有连续子数组的子问题的答案之和。
说明/提示
样例 1 解释:
对于 $[2]$ 答案为 $2$,对于 $[1]$ 答案为 $1$,对于 $[2, 1]$ 答案为 $1$。
因此,我们的输出应当为 $2+1+1 = 4$。
样例 3 解释:
考虑子数组 $[2, 4, 1, 3]$。
1. 在 $(1, 3)$ 上应用第一次操作,我们的新数组是 $[2, 4, 1]$。
1. 在 $(4, 1)$ 上应用第二次操作,我们的新数组是 $[2, 4]$。
1. 在 $(2, 4)$ 上应用第三次操作,我们最终的数是 $2$。
可以证明 $2$ 是最终的数的最大可能值。
- 测试点 $4\sim 5$:$N\le 100$。
- 测试点 $6\sim 7$:$N\le 5000$。
- 测试点 $8\sim 9$:$\max(a)\le 10$。
- 测试点 $10\sim 13$:没有额外限制。