A. C39【线段树+数学】[P5142] 区间方差

    传统题 200ms 128MiB

C39【线段树+数学】[P5142] 区间方差

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

P5142 区间方差

题目描述

对于一个长度为 nn 的序列 a1,a2,a3ana_1,a_2,a_3\cdots a_n,我们定义它的平均数 aa 为:

a=1ni=1naia=\frac{1}{n}\sum_{i=1}^{n}a_i

并定义它的方差 dd 为:

d=1ni=1n(aia)2d=\frac{1}{n}\sum_{i=1}^{n}(a_i-a)^2

现在给定一个长度为 nn 的序列 b1,b2bnb_1,b_2\cdots b_n。你需要支持两种操作。每种操作的格式为 c x y

c=1c=1,为修改操作,代表将 bxb_x 赋值为 yy

c=2c=2,为查询操作,代表查询 bxb_xbyb_y 的方差。

为了避免浮点数误差,请以分数取模形式输出结果(对 1000000007(109+710^9+7)取模)。

输入格式

第一行两个整数 n,mn,m,代表序列 bb 的长度为 nn,有 mm 个操作。

第二行 nn 个整数 bib_i,表示序列 bb 的初始值。

下面有 mm 行整数,每行格式为 c x y,含义如上文所示。保证所有操作合法。

输出格式

对于每个操作 2,输出一行。

输入输出样例 #1

输入 #1

4 8
0 0 0 0
1 1 1
1 2 2
1 3 3
1 4 4
2 1 1
2 1 2
2 1 3
2 1 4

输出 #1

0
250000002
666666672
250000003

说明/提示

样例 1 解释

四次修改后,序列 bb 为:{1,2,3,4}\{1,2,3,4\}

区间 [1,1][1,1] 的方差为 00

区间 [1,2][1,2] 的方差为 14\frac{1}{4}44 的逆元为 250000002250000002

区间 [1,3][1,3] 的方差为 23\frac{2}{3}33 的逆元为 3333333363333333362×333333336modM=6666666722\times333333336\bmod M=666666672

数据规模与约定

  • 对于 50%50\% 的数据,n1000n\leq 1000m1000m\leq 1000
  • 对于 100%100\% 的数据,1n,m1×1051\leq n,m\leq 1\times 10^51bi1×1091\leq b_i\leq 1\times 10^91xn1\leq x\leq n。对于操作 1,1y1×1091\leq y\leq 1\times 10^9。对于操作2,xynx\leq y\leq n

寒假0116:线段树1099+*圆方树1556

未参加
状态
已结束
规则
XCPC
题目
2
开始于
2025-1-16 14:35
结束于
2025-1-16 15:20
持续时间
0.8 小时
主持人
参赛人数
28