DP 优化 学习笔记

0 参考资料#

1 斜率优化#

1.1 斜率优化简介#

如果一类最优化问题的 dp 式可以被表示为 fi=min/max{fj+cosxi+cosyj+FiFj},则它一般可以被斜率优化直接优化。

这里我们就以最小值为例。

1.2 决策点策略#

假设我们要计算 fp

我们考虑计算当决策点 i<j 时,ij 优秀的条件。

fi+cosxp+cosyi+FiFp<fj+cosxp+cosyj+FjFp

将式子进行化简,得:

fifj<cosyjcosyi+(FjFi)×Fp

继续化简:

(cosyj+fj)(cosyi+fi)+(FjFi)×Fp>0

这时,我们设 xi=cosyi+fi,则:

(FjFi)×Fp>xixj

把式子整理得好看一点:

slope(i,j)=xixjFiFj>Fp

后面的式子是一个斜率的形式,所以我们把他称之为 斜率优化

1.3 维护决策点#

xiFi 都有序。

于是有两个结论。

结论 1:若当前 ij 优,则之后 i 一定也比 j 优。

结论 2:相邻决策之间的斜率单调增。

证明较为简单。

可以直接维护单调队列。

xi 有序。

结论 1 不存在了,但是还有结论 2!

需要在凸壳上二分。

Fi 有序。

需要使用平衡树等维护凸壳。

其他情况。

需要 动态凸壳 / 李超线段树。

1.4 斜率优化总结#

斜率优化

1.5 经典题目#

I. P3195 [HNOI2008]玩具装箱#

作者:DE_aemmprty

出处:https://www.cnblogs.com/aemmprty/p/18124994

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   DE_aemmprty  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示