• 简单DP


    单调队列&单调栈:

    有手就行.jpg

    四边形不等式:

    (w(i,j))满足(forall ale b<cle d,w(a,c)+w(b,d)le w(b,c)+w(a,d)),那么我们称(w(i,j))满足四边形不等式
    (w(i,j))满足(forall ale b<cle d,w(b,c)le w(a,d)),那么我们称(w(i,j))满足区间包含单调性
    对于这样一般形式的转移方程:(f_{l,r}=minlimits_{lle k}(f_{l,k}+f_{k+1,r})+w(l,r)),若(w(i,j))既满足区间包含单调性又满足四边形不等式,那么(f)也满足四边形不等式。设(s_{i,j})表示(f_{i,j})取到最优决策的(k),那么(s_{i,j})单调,即(s_{i,j-1}le s_{i,j}le s_{i+1,j})

    换根dp:

    大概就是先把原本的跑一遍,同时再跑一遍原来的去掉某个子树后的答案。
    然后每个点再处理一下。

    斜率优化

    比如(f_i=maxlimits_{jin[1,i)}(f_j-a_ia_j+a_i+a_j))
    我们把后面的式子中只含(i)的提出来,只含(j)的放在一起,同时含(i,j)的放在一起。
    (f_i=a_i+maxlimits_{jin[1,i)}((f_j+a_j)-a_ia_j))
    后面的东西我们可以看做是经过((a_j,a_j+f_j))的斜率为(a_i)的直线的截距。
    那么我们要求截距的最大值,这东西就是一个凸包。
    根据斜率与横坐标单调性的有无可以用诸如单调栈、二分栈、set(平衡树)维护凸包。

  • 相关阅读:
    Object-C 声明属性为什么用下划线,代码规范和编程风格
    iOS API 概述
    iOS 彻底学会使用delegate
    iOS NSNotification的使用
    L1_6 连续因子
    天梯 L1_46整除光棍
    51-Nod 1279
    UVA
    hdu 1078
    Poj 1088 滑雪 递归实现
  • 原文地址:https://www.cnblogs.com/cjoierShiina-Mashiro/p/11728260.html
Copyright © 2020-2023  润新知