【总结】DP优化

斜率优化

对形如:

\[ 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二分/凸优化/带权二分

猜你喜欢

转载自www.cnblogs.com/bobh/p/10353760.html