#P1319. Extreme Extension

Extreme Extension

题意翻译

对于一个数列,定义一次操作为选择数列中任何一个元素 aia_i ,将这个位置替换成两个正整数 x,yx,y 满足 x+y=aix+y=a_i

定义一个数列的极端值为将这个数列变成不降数列的最小操作次数

给定一个长度为 nn 的数列 aa1ai1051\leq a_i\leq 10^5 ),让你求它的所有非空子段的极端值之和,对 998244353\text{998244353} 取模

一个测试点中有多组数据,保证所有数据 nn 的规模总和不超过 10510^5

4
3
5 4 3
4
3 2 1 4
1
69
8
7264 40515 28226 92776 35285 21709 75124 48163
5
9
0
117

提示

对于 20%20 \% 的数据,满足 1t31 \leq t \leq 3n50\sum n \leq 501ai1001 \leq a_{i} \leq 100

对于 70%70 \% 的数据,满足 1t1041 \leq t \leq 10^{4}n103\sum n \leq 10^{3}1ai1051 \leq a_i \leq 10^{5}

对于 100%100 \% 的数据, 满足 1t1041 \leq t \leq 10^{4} , 且 n105\sum n \leq 10^{5}1ai1051 \leq a_i \leq 10^{5}

定义 f(l,r) f(l, r) 为序列 [al,al+1,,ar] [a_l, a_{l+1}, \ldots, a_r] 的极值。

在第一个测试案例中,

  • f(1,3)=3 f(1, 3) = 3 ,因为 YouKn0wWho 可以对子序列 [5,4,3] [5, 4, 3] 进行以下操作(新插入的元素已被下划线标记):$ [5, 4, 3] \rightarrow [\underline{3}, \underline{2}, 4, 3] \rightarrow [3, 2, \underline{2}, \underline{2}, 3] \rightarrow [\underline{1}, \underline{2}, 2, 2, 2, 3] $;
  • f(1,2)=1 f(1, 2) = 1 ,因为 $ [5, 4] \rightarrow [\underline{2}, \underline{3}, 4] $;
  • f(2,3)=1 f(2, 3) = 1 ,因为 $ [4, 3] \rightarrow [\underline{1}, \underline{3}, 3] $;
  • f(1,1)=f(2,2)=f(3,3)=0 f(1, 1) = f(2, 2) = f(3, 3) = 0 ,因为它们已经是非递减的。

因此,所有子序列的极值的总和为 a a 的值为 3+1+1+0+0+0=5 3 + 1 + 1 + 0 + 0 + 0 = 5