码迷,mamicode.com
首页 > 其他好文 > 详细

【总结】DP优化

时间:2019-02-06 17:07:27      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:直线   使用   mat   操作   math   转移   font   max   lin   

斜率优化

对形如:

\[ f_i=min/max \{f_j+w_{i,j} \} \]
\[ 更确切地,为形如f_i=min/max_{j<i}\{f_j+g_1(i)*g_2(j)+h_1(i)+h_2(j)\} \]
\[ (关键在于含有关于i,j的函数的乘积g_1(i)*g_2(j)) \]

的dp方程可使用斜率优化

移项,得:
\[ f_j+h_2(j)=g1(i)*g_2(j)+f_i-h_1(i) \]
\(则f_i-h_1(i)可以看做是用斜率为g_1(i)的直线去截坐标系上的点(g_2(j),f_j+h_2(j))\\在y轴上得到的截距\)

  • \(若g_1(i)与g_2(j)均单调\):

\(用单调队列维护对应凸包上的点\\ 转移时先从队首删去所有不再可能成为新的转移决策点的点(该转移一定满足决策单调),\\ 确定f_i的值后再从队尾删去不在新凸包上的点,两次操作均由比较斜率完成\)

  • \(若不单调若g_1(i),g_2(j)不单调\):

\(用平衡树+二分或cdq分治维护凸包/完成转移\)

wqs二分/凸优化/带权二分

【总结】DP优化

标签:直线   使用   mat   操作   math   转移   font   max   lin   

原文地址:https://www.cnblogs.com/bobh/p/10353760.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!