• DP例题整理


    AGC034E

    枚举最后停在rt点,转化有根树。
    策略一定是选取两个没有祖先关系的点同时向上走。可以用势能证明,如果有祖先关系,一加一减总势能不变,而我们要求总势能为0。
    然后这是一个模型,n个点在m个集合中,每次从不同集合中拿出两个球,那么有解的条件是n为偶数且sum-max>=max
    划分子阶段,假设在u点子树内抵消,设f[u]为u子树内最多消除多少对,可以把子树内的点x拆成dis(u,x)个操作,那么目的就是给操作两两抵消。
    在u点按不同儿子分集合,然后用结论尽可能抵消更优。
    剩下的可在非u点抵消,这些是我们已经dp出来的。
    最后在根节点判下合法更新答案,也就是sum/2。

    CF908G

    直接考虑每个数字的贡献,形式是一个x=10的多项式
    (Ans=sumlimits_{i=1}^{9}sumlimits_{j=i}^{9}w(j))
    后面那个东西是求[1,X]中所有数不小于i的数有多少个,可以数位dp

    AGC024F

    n很小,但似乎|S|很大。可以暴力枚举子序列,但是不能暴判。
    考虑构造一个子序列自动机,状态(S,T)表示当前有串S,后面要接T的子序列。由于n很小,状态数(O(n2^n))
    所以S是T的子序列当且仅当((phi,T)->(S,phi))
    由于是DAG,所以线性时间内dp下路径数即可。

    CTT2017某位歌姬的故事

    转化限制:等价于[l,r]内<=h且存在高度为h的点
    求出每个点的上界(up_i),可以发现答案内高度为h的点i满足(up_i=h)
    n很大,不能在原序列上dp,但是限制最多只有500个。
    拿出来单独dp

    暂没写完...

  • 相关阅读:
    种类并查集
    51nod 1241 特殊的排序(动态规划)
    NKU 专题一 题解
    51nod 1040 最大公约数之和
    cf #419(div2) C.Karen and Game(贪心)
    BZOJ 2648 SJY摆棋子(KD-Tree)
    BZOJ 4154 [Ipsc2015]Generating Synergy(KD-Tree)
    hdu 2966 In case of failure(KD-tree)
    hdu 6071 Lazy Running(同余最短路)
    hdu 6070 Dirt Ratio(分数规划)
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/12526000.html
Copyright © 2020-2023  润新知