【省选模拟】20/06/24

AA

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

BB

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

CC

  • 考虑前缀和 SkS_k<k<k 则不合法,若 Sk=kS_k=k 那么从 nn 开始必经过 k+1k+1
    考虑将这样的点作为关键点,对于两个关键点 k+1,t+1k+1,t+1t+1t+1 可以一步或若干步到 k+1k+1,但不能到 [1,k][1,k],于是下界是关键点个数,上界是不为 0 的数的个数
    最大值一定是扣掉树边后最大的 kk 个,用一个指针从后往前加
    同时,考虑最后一个关键点,若关键点到根的路径长度已经到达了最大值,则需要从 nnt+1t+1 之后的连边,贪心选最小的连,CodeCode
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章