斜率优化

是否还在为斜率优化发愁?怎么理解?怎么写?快看本博客,大伙看了都说好,史上最优秀的小白级讲解,令人拍案叫觉,享誉全球。

我是认真来作解说的

先看一道经典题特别行动队 可以列出转移方程

\[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\)了!

相信聪明智慧的你已经学会啦!

参考博客

posted @ 2021-02-17 10:27  yugyppah656  阅读(78)  评论(0编辑  收藏  举报