码迷,mamicode.com
首页 > 其他好文 > 详细

斜率优化小结

时间:2020-06-18 11:13:29      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:忘记   问题   math   应该   class   凸包   平衡   符号   直线   

斜率优化小结

博主是个智障,总是忘记斜率优化的过程。为了方便以后考前临时抱佛脚,写个博客。

斜率优化维护下面的问题:

\(f_i=min_{j<i}\{f_j+(a_i-b_j)^2\}\)

其中\(min\)\(max\),和\(+\)\(-\)\(a_i,b_j\)均只取决于\(i,j\)

首先不看取\(min\)。我们钦定它的决策点是\(j\),有:

\(f_i=f_j+a_i^2+b_j^2-2a_ib_j\) 其中符号什么的视情况而定。

(实际上未必是最上式,可以整理成上式的也都可以做斜率优化,甚至未必系数为2)

移项得:\(2a_ib_j+f_i-a_i^2=f_j+b_j^2\)

我们把\(b_j\)设为\(x\)\(f_j+b_j^2\)设置为\(y\)。这样每个决策点\(j\)可以看成点\((b_j,f_j+b_j^2)\)

转移我们看作拿一个斜率是\(a_i\)的直线,去切一群点,考虑最小化\(f_i\),所以要求截距最小。

又斜率都是正的,所以考虑拿这个切出来的点应该是下凸包。

维护凸包根据各种要求,有平衡树,cdq分治,普通单调队列等。

斜率优化小结

标签:忘记   问题   math   应该   class   凸包   平衡   符号   直线   

原文地址:https://www.cnblogs.com/Atoner/p/13156031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!