浅谈WQS二分、带权二分、凸优化与一类斜率优化DP


除最后一张普适公式外,文中所有图像和公式均为原创,转载请附出处谢谢!!!

题意

[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 1n2×105 1 ≤ m ≤ n 1\leq m\leq n 1mn ∑ i = 1 n a i ≤ 3 × 1 0 4 \sum\limits_{i=1}^{n}a_i\leq3\times10^4 i=1nai3×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=1m(pip)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=1mpi=mi=1nai
所以 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=1m(pip)2)=m(i=1mpi22×p×i=1mpi+m×p2)=mi=1mpi22×(i=1nai)2+(i=1nai)2=mi=1mpi2(i=1nai)2
发现 ( ∑ i = 1 n a i ) 2 \left(\sum\limits_{i=1}^{n}a_i\right)^2 (i=1nai)2是定值,所以要求的就是 m ∑ i = 1 m p i 2 m\sum\limits_{i=1}^{m}{p_i}^2 mi=1mpi2的最小值。

二维DP

(不考虑时空问题)
m m m也是定值,所以只需要求 ∑ i = 1 m p i 2 \sum\limits_{i=1}^{m}{p_i}^2

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值