题解:P3968 [TJOI2014] 电源插排
区间问题,优先考虑线段树,
具体的,我们维护五条信息:
-
区间内被使用插排个数
used 。 -
区间内的左端最长连续空插排
lmx 。 -
区间内的右端最长连续空插排
rmx 。 -
区间内的最长连续空插排
mx 。 -
区间内的最长连续空插排的中间位置
m 。
在 pushup 中,
对于同学的到来 / 离去,我们使用一个 map 存储其插排的位置并进行单点修改即可。
但是,普通线段树一般需要开
值得注意的是,因为同学们总会选右边的,所以 pushup 时需要从右至左地更新
综上,本题让我们学会了线段树处理区间问题的常见思路(维护