p4137-solution

P4137 Solution

link

考虑建主席树:权值线段树的叶子维护这个权值最后出现的下标,push_up 的时候取 min

这样一个区间的 min 小于 k 意味着有一个权值最后出现的下标小于 k,也就是说 k 后面没有出现这个权值。

也就是说 mex 就在这个区间内。

这样询问的时候就可以直接在 r 的权值树内根据 l 进行二分。

时空均为 O(nlogn),也可以改成扫描线维护一棵权值树,空间降到 O(n)

posted @   iorit  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示