P14164 [ICPC 2022 Nanjing R] 命题作文 思路
首先分为三类
- 一条未被覆盖链边+任意其他非链上边,\(cnt_0 \times (n+k-1-cnt_0)\)
- 一条覆盖一次链边+覆盖该边的非链边,\(cnt_1\)
- 两个覆盖集合一致的边
前两类就用 set 维护
第三类维护链表
对于 \([l,r]\) 找到 \(pre_i<l\) 或 \(nxt_i>r\) 的所在链边,这一步可以用线段树简单维护
断开并将前后缀相连接
重新给一条链上节点赋新的编号是启发式分裂即可
首先分为三类
前两类就用 set 维护
第三类维护链表
对于 \([l,r]\) 找到 \(pre_i<l\) 或 \(nxt_i>r\) 的所在链边,这一步可以用线段树简单维护
断开并将前后缀相连接
重新给一条链上节点赋新的编号是启发式分裂即可