#P17720. 「FunMusic OI 1C」旋律 / Melody

「FunMusic OI 1C」旋律 / Melody

背景

题目来源:【HT-127-Div.3】核桃CSP-J组模拟赛 &「FunMusic OI R1」

题目描述

David 的第三张专辑即将发布,其中有 nn 首曲目,每一首曲目都有一个情感值 pip_i,保证 pp 为排列。

David 从专辑中截取连续的一段曲目,当他截取从第 ll 首到第 rr 首时,他会取出这些曲目的情感值 [pl,pl+1,⋯ ,pr][p_l,p_{l+1},\cdots,p_r],并把它们从小到大排序。接着,他会将这个排好序的序列划分成若干个连续段,使得每一段内部的数都是连续的正整数。其中最长的那个段,被称为这段曲目的情感线。David 会采取最优的划分方案,使得这个情感线的长度最大,记长度的最大值为 f(l,r)f(l, r)。

举个例子,若一段曲目的情感值序列排序后为 [1,2,5,7,8,9,11][1,2,5,7,8,9,11],其中一种(不是唯一)最优的划分方案为 [1],[2],[5],[7,8,9],[11][1],[2],[5],[7,8,9],[11]。因此,其情感线最大长度为 33。

David 希望计算对于每段连续的曲目,所产生的情感线长度之和,换句话说,他希望你求出 $\displaystyle \sum_{l = 1} ^ n \sum_{r = l}^ n f(l, r)$ 的值。

输入格式

第一行一个整数 nn,表示排列 pp 的长度。

第二行 nn 个整数,表示 p1,p2,⋯ ,pnp_1, p_2, \cdots, p_n。

输出格式

输出一行一个整数,表示 $\displaystyle \sum_{l = 1} ^ n \sum_{r = l}^ n f(l, r)$ 的值。

3
1 3 2
9
2
1 2
4

提示

【样例解释】

  • l=1,r=3l=1,r=3 时,形成的数值连续段为 [1,2,3][1,2,3],长度最大值为 33,即 f(1,3)=3f(1, 3) = 3。
  • l=1,r=2l=1,r=2 时,形成的数值连续段为 [1],[3][1],[3],长度最大值为 11,即 f(1,2)=1f(1, 2)=1。
  • 同理,f(1,1)=1f(1, 1)=1,f(2,2)=1f(2,2)=1,f(3,3)=1f(3,3)=1,f(2,3)=2f(2,3)=2;总和为 99。

【数据范围】

本题采用捆绑测试。

::cute-table{tuack} | 子任务编号 | n≤n\le | 特殊性质 | 分值 | | :--------: | :----: | :--------: | :--: | | 11 | 100100 | 无 | 1010 | | 22 | 500500 | 无 | 2020 | | 33 | 30003000 | A\text{A} | 1010 | | 44 | 30003000 | B\text{B} | 2020 | | 55 | 30003000 | 无 | 4040 |

特殊性质 A\text{A}:对于任意整数 i∈[1,n]i\in [1, n] 保证 pi=ip_i = i。

特殊性质 B\text{B}:保证存在整数 x∈[0,n)x\in[0,n),使得对于任意 i∈[1,n]i\in [1, n],都有 pi=((i+x−1) mod n)+1 p_i = ((i + x - 1) \bmod n )+ 1 成立。

对于 100%100\% 的数据,1≤n≤30001\le n\le 3000,保证 pp 为排列。