斜率优化
是否还在为斜率优化发愁?怎么理解?怎么写?快看本博客,大伙看了都说好,史上最优秀的小白级讲解,令人拍案叫觉,享誉全球。
我是认真来作解说的
先看一道经典题特别行动队 可以列出转移方程
\[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值!
然后啊,暂时掌握单调队列维护凸包就可以了。这个题求最大值,直线从上面往下掉,碰到第一个点的时候就是\(dp_i\)了!
相信聪明智慧的你已经学会啦!