[图论记录]AT2645 [ARC076D] Exhausted?
command_block · · 个人记录
题意 : 在数轴上有
现在有
现在要添加一些椅子(可以放在任意实数位置),让所有人都能坐下,求添加椅子的最小数目。
左侧的
考虑离散化之后枚举
接下来我们可以钦定
-
维护
|S| 考虑一个人
(l,r) 邻域是[0,L]∩[R,\inf] 的子集的充要条件 :[l\leq L][R\leq r] (二维数点)。若
L 向右移动一位,可能会使得一个新的左侧点得以满足[l\leq L] ,然后这个点会贡献到所有[R\leq r] 的位置。就是前缀加。 -
维护
|N(S)| 事先对于每个
R 计算满足[R\leq p] 的椅子数目,也就是m-R+1 。当
L 向右移动一位,同样会使得一个新的椅子满足[p\leq L] ,触发全局减。 -
查询
对于一个确定的
L ,合法的R 必须满足[L<R] ,于是就相当于区间最大值。
线段树维护即可。注意最后要与
评测记录