【省选模拟】20/06/24

A A A

  • 注意到限制即为若 ∃ i \exist i i i i i 没有向前连边但 i i i 可以连的没有连满就不合法
    按可以连的个从小到大 d p dp dp,确定当前连不连,不连则新增一个限制,要求一个前缀全部有边
    记录 d p i , j , k , l dp_{i,j,k,l} dpi,j,k,l 表示到 i i i,限制为 j j j j j j 前面有 k k k 个没有连,共连了 l l l 条的方案数
    写出转移发现 j j j 是废的, O ( n 3 ) O(n^3) O(n3)
    C o d e Code Code

B B B

  • 将偶数位钦定成 ) ) ),考虑一个奇数为本来可以将一个前一个 ) ) ) 改成 ( ( (,用堆维护差量的最小值
    C o d e Code Code

C C C

  • 考虑前缀和 S k S_k Sk < k <k 则不合法,若 S k = k S_k=k Sk=k 那么从 n n n 开始必经过 k + 1 k+1 k+1
    考虑将这样的点作为关键点,对于两个关键点 k + 1 , t + 1 k+1,t+1 k+1,t+1 t + 1 t+1 t+1 可以一步或若干步到 k + 1 k+1 k+1,但不能到 [ 1 , k ] [1,k] [1,k],于是下界是关键点个数,上界是不为 0 的数的个数
    最大值一定是扣掉树边后最大的 k k k 个,用一个指针从后往前加
    同时,考虑最后一个关键点,若关键点到根的路径长度已经到达了最大值,则需要从 n n n t + 1 t+1 t+1 之后的连边,贪心选最小的连, C o d e Code Code

你可能感兴趣的:(校内模拟)