随笔分类 -  数据结构--主席树

摘要:题目 CF292D Connected Components 给出一个图,每次删除其中一个区间内的边,询问剩下的边构成的图当中的连通块个数。 \(N\le 500,1\le M,K\le 10000\) 分析 维护一个前缀的并查集和后缀的并查集,然后可以考虑每次拿出两段来合并,于是就很容易了。 具体 阅读全文
posted @ 2021-09-14 09:44 __Anchor 阅读(49) 评论(0) 推荐(0)
摘要:题目 CF522D Closest Equals 分析 回滚莫队/莫队+根号分治/线段树。 这道题和回滚莫队板题维护的信息正好相反,显然也是可以回滚莫队的。 但是会被卡,但是发现这个题目求的东西和区间数颜色的套路很像,于是可以考虑线段树/树状数组。 于是我们考虑离线询问,把询问挂到右端点上,然后就是 阅读全文
posted @ 2021-04-27 12:05 __Anchor 阅读(78) 评论(0) 推荐(0)
摘要:题目 P4137 Rmq Problem / mex 给定一个序列,多次询问区间 \(mex\) 。 分析 主席树/莫队+值域分块/回滚莫队。 主席树 主席树做法很显然,直接每一个点新建一个树,然后询问就是在两个前缀主席树上差分二分就行了。 时间复杂度 \(O(nlogn)\) 莫队+值域分块 可以 阅读全文
posted @ 2021-04-26 23:29 __Anchor 阅读(121) 评论(0) 推荐(0)
摘要:题目 P4175 [CTSC2008]网络管理 树上单点修改,查询路径第 k 大。 解答 这道题做法很多,有 树剖+线段树+平衡树+二分 的,也有 树剖+可持久化线段树+树状数组 的,也有 可持久化线段树+差分+树状数组 的,还有就是 整体二分+树剖 的。 复杂度都是几个 \(log\) 的做法。 阅读全文
posted @ 2021-04-23 23:58 __Anchor 阅读(47) 评论(0) 推荐(0)
摘要:P1903 [国家集训队]数颜色 / 维护队列 区间数颜色和单点修改。 可以树套树,但是不太会。 也可以考虑带修莫队,相当于就是多维护了一个时间轴。 排序方法变成先按块排序 \(l,r\) ,再按照 \(t\) 来排序即可。 单点修改里的 \(swap\) 很妙。 代码: #include<bits 阅读全文
posted @ 2021-04-21 20:54 __Anchor 阅读(79) 评论(0) 推荐(0)
摘要:P1972 [SDOI2009]HH的项链 经典区间数颜色问题。 离线做法有树状数组和莫队,在线做法有主席树。 莫队做法十分暴力,直接维护每个数当前的 cnt 再在单点更新的时候更新答案即可。 树状数组做法: 对于每一个位置维护一个前缀位置 \(pre\),那么询问就相当于是询问区间多少个位置的 \ 阅读全文
posted @ 2021-04-21 20:49 __Anchor 阅读(83) 评论(0) 推荐(0)
摘要:P3302 [SDOI2013]森林 P3302 [SDOI2013]森林 这道题加强版,多了连边的操作,强制在线。 考虑在那题的基础上怎么做这个题。 于是我们现在只需要解决操作2,我们发现其实我们维护的本质就是一棵棵主席树,而且这些主席树大小的总量一定。 再加上这道题没有删边,于是我们可以考虑启发 阅读全文
posted @ 2021-04-12 19:47 __Anchor 阅读(65) 评论(0) 推荐(0)
摘要:P2633 Count on a tree P2633 Count on a tree 给定一棵树,询问树上两点路径的第 k 小,强制在线。 可以直接树剖然后主席树,复杂度俩 \(log\) 。 这里主要是一个数据结构维护树上前缀信息的技巧。 想一想我们求树上两点距离怎么求的? \(dist(u,v 阅读全文
posted @ 2021-04-12 19:32 __Anchor 阅读(87) 评论(1) 推荐(0)
摘要:题意 传送门 分析 \(Akamey's\) \(blog\) 题意是查询一段区间中的异或和的最大值,所以可以想到按位贪心 也就是说,我们枚举当前可能的答案$ans=a[i]+x$的每一位(从高到低),于是我们可以发现, 最终答案$a[i]$一定落在: \(\large [ans+(1<<i)-x, 阅读全文
posted @ 2021-01-21 20:09 __Anchor 阅读(311) 评论(1) 推荐(0)