#3591. Divide a Sequence

0
    ID: 3591 传统题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 1 上传者: 标签>AtCoderabc234GGESP 3级进制转换数位拆分

Divide a Sequence

Divide a Sequence

题目描述

给定一个长度为 NN 的数列 AA。 有 2N−12^{N-1} 种方法可以将 AA 划分为若干个非空的连续子序列 B1,B2,…,BkB_1,B_2,\ldots,B_k。对每一种划分,求下面的值,并输出这些值的和对 998244353998244353 取模的结果。

∏i=1k(max⁡(Bi)−min⁡(Bi))\prod_{i=1}^{k} (\max(B_i)-\min(B_i))

这里,对于序列 Bi=(Bi,1,Bi,2,…,Bi,j)B_i=(B_{i,1},B_{i,2},\ldots,B_{i,j}),max⁡(Bi)\max(B_i) 和 min⁡(Bi)\min(B_i) 定义为 BiB_i 中元素的最大值和最小值。

输入格式

输入从标准输入按照如下格式给出: NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

打印这些值的和对 998244353998244353 取模的结果。

3
1 2 3
2
4
1 10 1 10
90
10
699498050 759726383 769395239 707559733 72435093 537050110 880264078 699299140 418322627 134917794
877646588

提示

1≤N≤3×1051 \leq N \leq 3 \times 10^5 1≤Ai≤1091 \leq A_i \leq 10^9 输入中的所有数值均为整数。将 A=(1,2,3)A=(1,2,3) 划分为非空连续子序列共有 44 种划分,如下所示。

(1)(1),(2)(2),(3)(3) (1)(1),(2,3)(2,3) (1,2)(1,2),(3)(3) (1,2,3)(1,2,3)

这些划分对应的 ∏i=1k(max⁡(Bi)−min⁡(Bi))\prod_{i=1}^{k} (\max(B_i)-\min(B_i)) 分别为 00、00、00、22。它们的和 22 应当被输出。
注意要对 998244353998244353 取模后输出。

标签: AtCoder|abc234G

来源

AtCoder|abc234G