线段树 标记永久化

要求标记有交换律,可以降低下传标记的常数,当标记比较复杂时可直接降低复杂度(常见于树套树中)

例:P8543 「Wdoi-2」纯粹的复仇女神

给定 \(a_{1\sim n}\)\(c_{1\sim n}\)\(q\) 次询问 \(l,r\),每次求 \(\max_{k=1}^n(\min_{l\le i\le r,c_i=k}a_i)\)(若 \(\min\) 内没有符合要求的则为 \(0\)),\(1\le a_i,c_i\le n\le2\times10^5,q\le10^6\)

\([L_i,R_i]\) 为满足 \(\forall L_i\le j\le R_i\land c_j=c_i,a_j\ge c_i\) 的极大区间,其容易通过单调栈线性求出

则一个 \([L_i,R_i]\) 会使 \(L_i\le l\le i,i\le r\le R_i\) 的询问 \(l,r\) 的答案对 \(a_i\)\(\max\)

转化为若干次矩形取 \(\max\) 和单点查询,其中查询在修改之后

离线所有询问后扫描线处理即可,时间复杂度 \(O(n\log^2 n+q\log n)\),需要用两个堆模拟支持 插入、删除、取最大 的可重集

代码

参考

  1. \(\text{2024.12.13 EZDS.pdf\;\;\; by Luzhuoyuan}\)
posted @ 2025-04-28 16:24  Hstry  阅读(11)  评论(0)    收藏  举报