斜率优化
作者:互联网
让我来拯救水火之中的人们 几何多好理解啊,为什么要用代数方法呢?
先看一道经典题特别行动队 可以列出转移方程
\[dp_i=\max \left\{ dp_j+a(sum_i-sum_j)^2+b(sum_i-sum_j)+c \right\} \]跟\(i\)有关的项当成常数,跟\(j\)有关的项当成变量。我们把右边式子写成\(i*j_1+j_2+c\)的形式!
设想坐标系里面有一些点\((j_1,j_2)\),有一个直线\(y=-ix+b\) 直线可以随意上下平移!
如果直线和这个点相交了,你发现了什么?发现了什么?直线和y轴交在了b,\(b=i*j_1+j_2\)!!
然后啊,暂时掌握单调队列维护凸包就可以了。这个题求最小值,直线从地底下往上拎,碰到第一个点的时候就是\(dp_i\)啦。
相信聪明智慧的你已经学会啦!
参考博客 比本蒟蒻写的必然要精彩的多了。
标签:直线,right,sum,当成,斜率,行动队,优化,dp 来源: https://www.cnblogs.com/happyguy/p/13890261.html