#L0509. 区间方差查询

区间方差查询

题目背景

小明在整理他的数学笔记时,发现了一个有趣的数列问题。

题目描述

小明在他的笔记本上记录了一个包含 NN 个实数的数列。他想对这个数列进行一些操作,包括区间修改和查询。

输入格式

第一行包含两个正整数 N,MN, M,分别表示数列中实数的个数和操作的个数。

第二行包含 NN 个实数,其中第 ii 个实数表示数列的第 ii 项。

接下来 MM 行,每行为一条操作,格式为以下三种之一:

操作 111 x y k ,表示将第 xx 到第 yy 项每项加上 kkkk 为一实数。
操作 222 x y ,表示求出第 xx 到第 yy 项这一子数列的平均数。
操作 333 x y ,表示求出第 xx 到第 yy 项这一子数列的方差。

输出格式

输出包含若干行,每行为一个实数,即依次为每一次操作 22 或操作 33 所得的结果(所有结果四舍五入保留 44 位小数)。

样例

5 5
1 5 4 2 3
2 1 4
3 1 5
1 1 1 1
1 2 2 -1
3 1 5
3.0000

2.0000 0.8000

</p>

提示

关于方差:对于一个有 nn 项的数列 AA,其方差 s2s^2 定义如下:

$$s^2=\frac{1}{n}\sum\limits_{i=1}^n\left(A_i-\overline A\right)^2$$

其中 A\overline A 表示数列 AA 的平均数,AiA_i 表示数列 AA 的第 ii 项。

数据规模:

数据点$N$$M$备注
$1\sim3$$N\le 8$$M\le 15$-
$4\sim7$$N\le 10^5$$M\le 10^5$不包含操作 $3$
$8\sim10$$N\le 10^5$$M\le 10^5$-

保证原数列和输入的所有 kk 均为 [100,100][-100,100] 范围内的实数。

难度 提高
通过率
尝试 0
已通过 0
ID
1237
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者