AT_ijpc_variance 分散 (Variance)
题目描述
**背景**
在统计中,方差是表示数据的散乱程度的一个数。
在数列$a_1,a_2,a_3,...,a_n$中:
- 平均数m是指$\frac{a_1+a_2+a_3+...+a_n}n$
- 方差(σ^2)是指$\sum_{k=1}^n|a_k-m|^2$。
我想计算数列上的某个区间的方差。
**课题**
有个数列$A_0,A_1,A_2,...,A_{n-1}$。首先通过$init(N, A)$给出A的初始值。
请实现以下过程
- 过程$init(N, A)$
- $N$表示数排的长度。数列的每一项都有不同的整数编号,从$0$到$N-1$。
- $A$表示数列中各个项的整数排列。假定对于$A$中的任何一个数$A_i$都满足 $1 \leq A_i \leq 10 000$
最初在调用$update(i, x)$或$variance(i, j)$之前只调用该过程一次。这个过程没有返回值。
- 过程$update(i, x)$
- i表示数组数值变化项。$0 \leq i
输入格式
第一行一个整数$N$,表示$A$数组元素个数
第二行接下来$N$个整数$A_0,A_1,A_2,..A_{n-1}$(用空格分隔),$A_i$表示第$i$项的初始值
第三行一个整数$M$,$M$=$P+Q$
第四至第$M+3$行,第$i+4$行输入整数$T_i,X_i,Y_i$(用空格分隔),$T_i=0$表示调用$update(X_i,Y_i)$,$T_i=1$表示调用$variance(X_i,Y_i)$
输出格式
对于每个$variance$函数的调用,输出结果
**数据规模**
$50\%$的数据,$1 \leq N \leq 1000,1 \leq P+Q \leq 1000$
另$50\%$的数据,$1 \leq N \leq 100000,1 \leq P+Q \leq 100000$