是否还在为斜率优化发愁?怎么理解?怎么写?快看本博客,分钟解千愁,大伙看了都说好,机不可失,失不再来,史上最优秀的小白级讲解,令人拍案叫觉,交口称赞,享誉全球。
我是认真来作解说的
先看一道经典题特别行动队 可以列出转移方程
[dp_i=max left{ dp_j+a(sum_i-sum_j)^2+b(sum_i-sum_j)+c
ight}
]
跟(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)啦。
相信聪明智慧的你已经学会啦!
参考博客 要详细一些。