9.20 斜率优化复习
看我之前写的狗屎:https://www.becoder.com.cn/article/11836。
当时根本就不懂斜率优化是什么。
今天真的懂了,来写总结。
1 问题转化
对于一类 dp 方程式:
设
考虑把每个
那么当前转移就有“当前点数”种转移,每个点我们都能算出对应的
换一种等价描述:将一条斜率为
由于现在经过了之前的一个决策点,所以
2 解决方法
2.0 分讨
就是根据加入的
2.1 李超
我们再把问题转化一下,我们考虑把点变成直线,即:
然后
对于决策点,我们就在对应区间加入一条直线;转移,就查询区间内的所有线段在
对于一般的问题,对应的区间都是全局,所以李超树可以很好写。
比如在 Machine Works 一题中,为了避免动态开点的大常数,我们考虑还是维护
2.2 最难理解的单调队列
这玩意最容易打挂最不好调(个人向),不如李超。
还是把决策点当成是点,画图得知要维护一个上凸壳。这是一个 slope 问题,如果 x 连续就可以单调队列维护相邻两个的斜率使之单调。
查询呢,我们必然从端点开始,并且不断地删除端点,必须保证以后查询一定不会使用他们。所以还要保证我们的斜率是单调的。
2.2.ex
如果斜率不单调?
还是单调队列维护凸壳,决策点二分找即可。
3 总结
李超 yyds!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】