普通版
其中 表示前 个放 个邮局的最小代价, 表示 放一个邮局的最小代价。
考虑怎么求 ,显然放邮局最优在第 个点,我们设为 。
直接暴力转移是 ,可以过普通版。
加强版
考虑优化这个 DP,式子中的 难以在斜率优化中计算。
而这个式子显然满足决策单调性,因为 。
所以我们可以用决策单调性优化到 。
加强加强版
我们在复杂度上还没优化 。
注意到此题恰好分 段,且满足四边形不等式。
我们在式子中加入常数 ,用 wqs 二分优化到 。
dpi,k=minj=0i−1dpj,k−1+w(j+1,i)
其中 dpi,k 表示前 i 个放 k 个邮局的最小代价,w(l,r) 表示 [l,r] 放一个邮局的最小代价。
考虑怎么求 w(l,r),显然放邮局最优在第 ⌊2l+r⌋ 个点,我们设为 x。
w(l,r)=i=l∑x−1ax−ai+i=x+1∑rai−ax=(x−l)ax−i=l∑x−1ai+i=x+1∑rai−(r−x)ax=(x−l)ax−(Sx−1−Sl−1)+(Sr−Sx)−(r−x)ax
直接暴力转移是 O(kn2),可以过普通版。
考虑优化这个 DP,式子中的 x 难以在斜率优化中计算。
而这个式子显然满足决策单调性,因为 w(l,r+1)≤w(l+1,r+1)。
所以我们可以用决策单调性优化到 O(knlogn)。
我们在复杂度上还没优化 k。
注意到此题恰好分 k 段,且满足四边形不等式。
我们在式子中加入常数 c,用 wqs 二分优化到 O(nlognlogk)。