ARC213

ABC441

Task A

签到题

Task B

签到题

Task C

基础前缀和

Task D

注意到 $L$ 很小,$4^L\approx 1e6$。基础队列

Task E

模板题,单点加区间和

Task F

双向背包模板

Task G

题目大意:每个位置有 $0$(初始) 和 $1$ 两个状态,有如下三种操作:

  • 区间上逐一加,且仅在状态为 $0$ 的位置上加。

  • 区间上逐一翻转,即每个位置上的值清空且状态切换

  • 询问区间 max


一般题解 的大致思路:对于某确定区间,所有操作可以归纳成若干次翻转和一次赋值。记录操作 tag $(a,b)$ 分别为翻转次数、赋值大小,从而可以实现 $tag$ 间的合并。再记录区间状态 $0$ 的数量,进而确定区间 max。

还有一种操作可以避免 tag:用两颗平衡树分别记录两种状态的点集。


$Summary$:不错的线段树 tag 练习,需要设计合适的存储状态,约为蓝色水准