首页 > TAG信息列表 > P1471
P1471 方差
给定数列,维护区间平均数和区间方差,并支持区间修改。\(n\leq10^5,m\leq10^5\)。 线段树维护平均数比较简单,重点在于如何维护方差。 具体公式参考了这篇题解,就不详细展开,推出来以后就变成简单的线段树维护问题。 #include<bits/stdc++.h> using namespace std; struct node{ doubLuogu P1471 方差
题目 Luogu P1471 维护一个包含 \(n\) 个实数的数列,并有 \(m\) 个操作 操作为以下三种之一: 1 x y k 表示将第 \(x\) 到第 \(y\) 项每项加上 \(k\) ,\(k\) 为一实数 2 x y 表示求出第 \(x\) 项到第 \(y\) 项这一子数列的平均数 3 x y 表示求出第 \(x\) 项到第 \(y\) 项这一子数列P1471 方差
Lisa 运用一点初中知识可以知道 维护一下区间平方和和区间和就可以处理了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m; int f; int x,y; double k; struct p{ double sum; double sqr; }po[400005]; double laz洛谷 P1471 方差
Description 洛谷传送门 Solution 一道非常经典的线段树问题,下面我们来分析一下。 题目要求我们支持区间加,求区间平均值,求区间方差。 区间加和区间平均值都很简单,唯独这个区间方差要如何维护呢? 我们先来看一下方差的式子: \[len = r - l + 1 \]\[S^2 = \frac{1}{len}\sum\limits_{i