斜率优化复习小结

Posted 心里只有学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斜率优化复习小结相关的知识,希望对你有一定的参考价值。

这篇基本上还是自己看的,写一些碎片和注意事项

 

斜率优化:

①形如 DP[i]=min/max{DP[j]+A[j]+B[j]*C[i]+D[i]+E}方程,将转移方程化为 (DP[j]+A[j])=(-C[i])*(B[j])+(DP[i]-D[i]-E)

  即方程斜率式:y=kx+b,其中k=-C[i]

  要求C[i]单调!(斜率单调)

  易证明用单调队列维护一个上凸或下凸(最直观的证明方法大概是线性规划,用代数方法亦可),即可在线性时间求解

②形如 DP[i]=min/max{(B[i]-A[j])/(i-j)},ans=min/max(与前面一致){DP[i]} 

   易证用单调队列维护一个凸结构即可  

  

注意事项:

①比较斜率的时候是否加等号(不影响DP值,但影响转移点选取)

②先入队还是先更新DP值

③long long\int\double

④状态转移方程不要写错(虽然是废话)

 

练习题:

HDU 3507

UVALive 4726

CodeForces 674C

HDU 5956(树形DP,事实上暴力斜率优化可以被卡到n2,但oj上能过,如果加一个二分可以优化成nlogn,但据说在oj的数据上跑得会更慢——不过随机数据使用二分应该的确更慢一些)

以上是关于斜率优化复习小结的主要内容,如果未能解决你的问题,请参考以下文章

斜率凸优化小结

[BZOJ3156]防御准备 斜率优化DP

凸包小结

DP斜率优化

斜率优化规律

模板斜率优化dp