题目名称 | 2232. 方差 |
---|---|
输入输出 | variance.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 |
|
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:1, 通过率:100% | ||||
|
100 | 1.740 s | 8.64 MiB | C++ |
关于 方差 的近10条评论(全部评论) |
---|
给定$n$个实数构成的序列$a$和$m$个操作,请你编程实现这些操作。
第一行包含两个正整数 $n,m$,分别表示数列中实数的个数和操作的个数。
第二行包含 $n$ 个实数,其中第 $i$ 个实数表示数列的第 $i$ 项。
接下来 $m$ 行,每行为一条操作,格式为以下三种之一:
操作 $1$:1 x y k
,表示将第 $x$ 到第 $y$ 项每项加上 $k$,$k$ 为一实数。
操作 $2$:2 x y
,表示求出第 $x$ 到第 $y$ 项这一子数列的平均数。
操作 $3$:3 x y
,表示求出第 $x$ 到第 $y$ 项这一子数列的方差。
输出包含若干行,每行为一个实数,即依次为每一次操作 $2$ 或操作 $3$ 所得的结果(所有结果四舍五入保留 $4$ 位小数)。
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
对于测试点$1\sim 3$,$n\leq 8, m\leq 15$。
对于测试点$4\sim 7$,保证不包含操作$3$。
对于所有测试点,$n,m\leq 10^5,-1000\leq a_i\leq 1000,1\leq x\leq y\leq n, -1000\leq k\leq 1000$。
关于方差:对于一个有 $n$ 项的数列 $a$,其方差 $s^2$ 定义如下:
$$s^2=\frac{1}{n}\sum\limits_{i=1}^n\left(a_i-\overline a\right)^2$$
其中 $\overline a$ 表示数列 $a$ 的平均数,$a_i$ 表示数列 $a$ 的第 $i$ 项。