QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: ucup-team7870

Posted at: 2026-02-28 09:04:00

Last updated: 2026-02-28 09:04:13

Back to Problem

New Editorial for Problem #17177

考虑判定:操作顺序形如对 $a$ 从小到大操作,每次取出 $a$ 的所有最小值,那么至少有一个需要停留在这里,否则无解。剩下的位置进行 $+1$,直到全部操作完。

用一个递归判定的思路,从 $[1,n]$ 开始操作,可以找出所有 $x$,使得所有跨越 $x$ 的区间都是非法的。接下来认为 $[1,n]$ 本身是合法的(事实上对于所有轮廓线分开做)

考虑刻画 ban 掉的 $[l,r]$ 的矩形,每次考虑 $\min$ 的所有取值,将删除的 $\min$ 设为黑色,剩下的记为白色。如果一个 $[l,r]$ 跨越了至少一个白色但是没跨越黑色那么就爆了。但是矩形数量依旧很爆,考虑让矩形带权:对于 ban 掉的矩形,取出所有相邻的黑点 $x,y$,加入 $l\in[x+1,y-1],r\in[x+1,y-1]$,权值为 $1$;对此时的相邻点加入 $[a+1,b-1],[a+1,b-1]$,权值为 $-1$。

前者总操作数正确,而后者可以等修改时再统计(权值是累加的),总共 $\mathcal O(n)$ 个矩形加。查询 $(l,r)$ 考虑这个点点权是否 $>0$,那么离线扫描线,用树状数组维护就是 $\mathcal O(n\log n)$ 的。

Comments

No comments yet.