QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: xcx0902

Posted at: 2026-04-16 16:35:06

Last updated: 2026-04-16 16:37:32

Back to Problem

New Editorial for Problem #7980

先考虑所有操作 $l=1,r=m$ 的情况。

离线。对于每个区间,将其三等分为 $[L,L_m,R_m,R]$。这样,在左右两段的切断一定不会导致中段被丢弃。考虑找到第一个切到 $[L_m,R_m]$ 的操作 $t_0$。则它之前的所有操作都没有切到中间,可以直接切断并丢弃对应的部分。于是需要支持找到 $t\lt t_0,x\lt L_m$ 的最大的 $x$,以及 $t\lt t_0,x\gt R_m$ 的最小的 $x$。对于 $x$ 建立线段树,上面存每个位置被切的时刻 $t$,则上述部分都可以使用此线段树维护。由于每次切中间至少会使区间长度减少三分之一,故时间复杂度有保证。

再考虑原题。对操作时间扫描线,动态地维护关于当前区间 $[L_i,R_i]$ 的操作即可。

Comments

No comments yet.