zoukankan      html  css  js  c++  java
  • [FJOI2018]领导集团问题

    [FJOI2018]领导集团问题

    dp[i][j],i为根子树,最上面的值是j,选择的最大值

    观察dp方程

    1.整体Dp已经可以做了。

    2.考虑优美一些的做法:

    dp[i]如果对j取后缀最大值,显然是不上升的分段函数

    而段数就是子树sz

    树形Dp的时候,子树之间可以直接把分段函数按位相加。对于<=w[x]的,可以额外获得从dp[i][w[x]]+1得到的转移

    1.用map维护,启发式合并,但是合并整体加上一些数不能维护具体值,所以维护差分值!

    2.额外转移,找到前驱p,p+1到w[x]整体+1,差分数组上,就是dp[x][w[x]]++,dp[x][p]--

    任何时候,如果键值变成0,必须删除。否则第二问就错了。

    分段函数、整体Dp都是基于整体上值域个数有限进行的trick

    整体Dp运用线段树合并,还可以支持打标记,适用面其实更广。

    [九省联考2018]秘密袭击coat

    分段函数,通常处理后缀最值,由于单调,通过记录差分数组可以O(1)进行区间加减,启发式合并。如果涉及区间函数平移操作,表现更为灵活。

    模拟赛 yjqb

  • 相关阅读:
    tyvjP1078
    红黑树笔记
    红黑树插入代码学习
    tyvjP1082找朋友
    牛棚回声USACO OCT09 3RD
    每日参悟
    全排列学习
    学习1.2
    学习笔记1.1
    学习笔记1.3
  • 原文地址:https://www.cnblogs.com/Miracevin/p/10768514.html
Copyright © 2011-2022 走看看