BZOJ 1010 [HNOI2008] 玩具装箱 toy


题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1010

题意:将一个长度为 n 的数列分段,每段的费用是某数学公式值... 总费用最小


直接套用题面的式子会比较麻烦... 稍微搞一搞

考虑朴素 dp 式 f[i] 表示到 i 位置且在 i 处分段的最小费用 \(s_{i}\) 表示前缀和

$$f_i=min(f_j+[i-(j+1)+s_i-s_j-L]^2)$$

为了便于表述,令\(g_i=i+s_i\) \(c=L+1\)

$$f_i=min(f_j+(g_i-g_j-c)^2)$$

考虑决策点 t<k 且 k 优于 t 化简式子得

$$\frac{(f_k+g_k^2)-(f_t+g_t^2)}{g_k-g_t}< 2g_i-2c$$

维护下凸壳,斜率优化即可

 

声明:zgz233|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - BZOJ 1010 [HNOI2008] 玩具装箱 toy


一个oier的博客 |注册功能过几天就修| 博客搬家啦,现在跑的飞快!

标签: , , ,