幕天
除最后一张普适公式外,文中所有图像和公式均为原创,转载请附出处谢谢!!!
题意
[BZOJ 4518] Sdoi2016 征途
求 n n n个数 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an分成 m m m段,求每段的数之和的方差 s 2 s^2 s2的最小值,输出 s 2 × m 2 s^2\times m^2 s2×m2。
( 1 ≤ n ≤ 2 × 1 0 5 1\leq n\leq2\times10^5 1≤n≤2×105, 1 ≤ m ≤ n 1\leq m\leq n 1≤m≤n, ∑ i = 1 n a i ≤ 3 × 1 0 4 \sum\limits_{i=1}^{n}a_i\leq3\times10^4 i=1∑nai≤3×104,实际上数据可以开成这样)
一个简单的转化
设第 i i i段数之和是 p i p_i pi,众所周知方差 s 2 = ∑ i = 1 m ( p i − p ‾ ) 2 m s^2=\dfrac{\sum\limits_{i=1}^{m}(p_i-\overline{p})^2}{m} s2=mi=1∑m(pi−p)2,其中 p ‾ = ∑ i = 1 m p i m = ∑ i = 1 n a i m \overline{p}=\dfrac{\sum\limits_{i=1}^{m}p_i}{m}=\dfrac{\sum\limits_{i=1}^{n}a_i}{m} p=mi=1∑mpi=mi=1∑nai。
所以 s 2 × m 2 = m ( ∑ i = 1 m ( p i − p ‾ ) 2 ) = m ( ∑ i = 1 m p i 2 − 2 × p ‾ × ∑ i = 1 m p i + m × p ‾ 2 ) = m ∑ i = 1 m p i 2 − 2 × ( ∑ i = 1 n a i ) 2 + ( ∑ i = 1 n a i ) 2 = m ∑ i = 1 m p i 2 − ( ∑ i = 1 n a i ) 2 \begin{aligned} s^2\times m^2&=m\left(\sum\limits_{i=1}^{m}(p_i-\overline{p})^2\right)\\ &=m\left(\sum\limits_{i=1}^{m}{p_i}^2-2\times\overline{p}\times\sum\limits_{i=1}^{m}p_i+m\times\overline{p}^2\right)\\ &=m\sum\limits_{i=1}^{m}{p_i}^2-2\times\left(\sum\limits_{i=1}^{n}a_i\right)^2+\left(\sum\limits_{i=1}^{n}a_i\right)^2\\ &=m\sum\limits_{i=1}^{m}{p_i}^2-\left(\sum\limits_{i=1}^{n}a_i\right)^2 \end{aligned} s2×m2=m(i=1∑m(pi−p)2)=m(i=1∑mpi2−2×p×i=1∑mpi+m×p2)=mi=1∑mpi2−2×(i=1∑nai)2+(i=1∑nai)2=mi=1∑mpi2−(i=1∑nai)2
发现 ( ∑ i = 1 n a i ) 2 \left(\sum\limits_{i=1}^{n}a_i\right)^2 (i=1∑nai)2是定值,所以要求的就是 m ∑ i = 1 m p i 2 m\sum\limits_{i=1}^{m}{p_i}^2 mi=1∑mpi2的最小值。
二维DP
(不考虑时空问题)
m m m也是定值,所以只需要求 ∑ i = 1 m p i 2 \sum\limits_{i=1}^{m}{p_i}^2