关于一类数据处理

动态维护一个区间内只出现了一次的数,操作涉及插入和删除

Sol1

值域分块,简单来说还是暂时压缩。每次新插入一个数就将 x/Mx

最后查询 [1,M],只要有一个位置可以,那么就在这里暴力找整块,也只是 S/M 的大小。

M=S 那么复杂度就是和莫队一样的根号了。

Sol2

考虑维护一个 vector 或者栈,你考虑按照加入的顺序最后同一删除,然后这个删除就维护一个懒标,复杂度和主算法一致。

CF1000F 主席树做法

这道题的主席树不想平常那样了,这里的更改涉及 lsti,更为复杂,容易陷入死循环。

首先注意一个很重要的点:主席树一旦初始化至 i,而且主席树维护区间 [1,i],那么这个主席树的 j<i 的点一定不可改,只能在 i 上做文章。

注意到 (lsti,i) 的二元组。

转化:区间内最后的 ilst 值小于 r 即有解,也就是维护 minlsti 以及返回下标。

那么对于版本 i,只需要修改 i 的同时,把 lsti 位置上的值设置为 INF 即可。

posted @   LCat90  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示