题意
将 n n n 个数的序列分为 m m m 段,求各段内数字之和的方差的最小值 × m 2 \times m^2 ×m2。 n , m ≤ 3000 n,m\leq 3000 n,m≤3000。
题解
方差不好看,先推一下式子:
m 2 s 2 = m 2 ∑ i = 1 m ( x i − x ‾ ) 2 m = m ( ∑ i = 1 m ( x i 2 − 2 x i x ‾ + x ‾ 2 ) ) = m ( ( ∑ i = 1 m x i 2 ) − 2 x ‾ n + m ⋅ n 2 m 2 ) = m ( ∑ i = 1 m x i 2 ) − n 2 \begin{aligned}m^2s^2=&m^2\dfrac{\sum\limits_{i=1}^{m}(x_i-\overline x)^2}{m}\\ =&m(\sum\limits_{i=1}^m(x_i^2-2x_i\overline x+\overline x^2))\\ =&m((\sum\limits_{i=1}^mx_i^2)-2\overline xn+m\cdot{n^2\over m^2})\\ =&m(\sum\limits_{i=1}^mx_i^2)-n^2\end{aligned} m2s2====m2mi=1∑m