sp4487-solution

SP4487 Solution

link

考虑用 fhq-treap 维护序列:按照 siz 进行 split,每次 split 出前 \(k\) 小的元素。于是这里就以序列下标为关键字,在平衡树中排序。

\(p\) 处单点插入的话执行 split(rt,p-1,x,y) 后对创造新节点 \(z\) 再执行 rt=merge(merge(x,z),y) 即可。删除和修改类似,先执行 split(rt,p,x,y),split(x,p-1,x,z) 后删除或修改 \(z\) 即可。

然后每个节点按小白逛公园的方法维护最大子段和,push_up 时顺便维护。

posted @ 2024-03-07 07:44  iorit  阅读(19)  评论(0)    收藏  举报