#abc468e. Sum of Average

    ID: 4373 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>普及+/提高前缀和乘法逆元数学推导

Sum of Average

题目描述

给定正整数 NN 和长度为 NN 的整数序列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)

定义 f(l,r)f(l, r)Al,Al+1,,ArA_l, A_{l+1}, \ldots, A_r算术平均数

请求出

1lrNf(l,r)\sum_{1 \le l \le r \le N} f(l, r)

的值对 998244353998244353 取模的结果。

有理数取模的定义

在本题约束下,可以证明所求的有理数写成既约分数 PQ\dfrac{P}{Q} 时必有 Q≢0(mod998244353)Q \not\equiv 0 \pmod{998244353}。因此存在唯一的整数 RR 满足 R×QP(mod998244353)R \times Q \equiv P \pmod{998244353}0R<9982443530 \le R < 998244353,请输出这个 RR

输入格式

N
A_1 A_2 ... A_N

输出格式

输出答案对 998244353998244353 取模的结果。

输入示例 1

2
2 3

输出示例 1

499122184

示例 1 说明

f(1,1)=2f(1,1) = 2f(1,2)=2+32=52f(1,2) = \dfrac{2+3}{2} = \dfrac{5}{2}f(2,2)=3f(2,2) = 3

所以总和为 2+52+3=1522 + \dfrac{5}{2} + 3 = \dfrac{15}{2}

152\dfrac{15}{2} 在模 998244353998244353 意义下等于 499122184499122184(可以验证 499122184×215499122184 \times 2 \equiv 15)。

输入示例 2

6
1 2 3 4 5 6

输出示例 2

499122250

示例 2 说明

A=(1,2,3,4,5,6)A = (1,2,3,4,5,6) 共有 2121 个区间。把每个区间的平均数加起来是一个分母含 2,3,4,5,62, 3, 4, 5, 6 的分数,通分后化到模 998244353998244353 意义下就是 499122250499122250

注意分母不是单一的数,所以必须对每一种区间长度分别乘上它的逆元。

输入示例 3

9
3 1 4 1 5 9 2 6 5

输出示例 3

855638200

示例 3 说明

N=9N = 9 时区间共有 4545 个。答案同样是一个分母较复杂的分数在模意义下的表示。

这三组样例的答案都不是「看起来像平均数」的数,正说明模意义下的除法是乘逆元,而不是实数除法。

约束条件

  • 1N5×1051 \le N \le 5 \times 10^5
  • 0Ai<9982443530 \le A_i < 998244353
  • 所有输入值均为整数