![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【数据结构】主席树
文章平均质量分 59
mysterynoip
蒟蒻OIer
展开
-
bzoj 3772 精神污染 主席树
题面题目传送门解法考虑怎样的两条路径会相交 假设某一条路径为(x,y)(x,y)(x,y) 如果(x,y)(x,y)(x,y)这条路径的某一个端点就是这两个点的lcalcalca,那么另一条路径的两个端点一定是一个在深度较大的子树里,另一个不在深度较小的点的子树里 如果(x,y)(x,y)(x,y)这条路径会经过lcalcalca,那么另一条路径的两个端点一定分别在xxx和y...原创 2018-08-16 21:01:25 · 195 阅读 · 0 评论 -
bzoj 3123 [Sdoi2013]森林 主席树+启发式合并
题面题目传送门解法考虑没有LLL操作的时候怎么做 显然主席树只要维护每一个点到根的东西,然后查询x,yx,yx,y的时候直接在x,y,lca(x,y),fa(lca(x,y))x,y,lca(x,y),fa(lca(x,y))x,y,lca(x,y),fa(lca(x,y))这四棵树上跑就行了 但是现在有LLL了怎么办??? 直接将小的并到大的上去,然后暴力重构小树中的倍增数...原创 2018-08-16 22:28:22 · 139 阅读 · 0 评论 -
bzoj 3932 [CQOI2015]任务查询系统 主席树+差分
题面题目传送门解法可以用可持久化线段树来实现一些离线且使用线段树的问题对于一个任务(l,r,x)(l,r,x)(l,r,x),就可以等同于在[l,r][l,r][l,r]这段区间中全部插入一个数xxx暴力做这个事情显然是不可取的我们可以考虑将这个区间加法变成差分,即在lll这个位置插入一个数xxx,在r+1r+1r+1这个位置把xxx删除,然后做一遍前缀和即为这个位置具体...原创 2018-09-04 20:29:21 · 139 阅读 · 0 评论 -
bzoj 5319 [Jsoi2018]军训列队 主席树
题面题目传送门解法主席树……先考虑一个比较显然的贪心,将这段区间的所有数从小到大排序,然后对应相减计算出绝对值之和就是答案了。这个贪心毫无疑问是正确的时间复杂度?O(nqlogn)O(nqlogn)O(nq\log n) 然后我们就可以取得404040分的好成绩考虑如何优化这个过程,可以发现,排序过后一定会分成两段,前一段区间里原本的数都小于对应位置的下标,后一段都不小...原创 2018-09-02 12:50:29 · 175 阅读 · 0 评论 -
[2018.10.17校内训练] 小报告 KMP+主席树
题面给定一个长度为nnn的序列和一个长度为mmm的序列,问长度为nnn的序列中有多少个长度为mmm的子串离散化后的结果恰好为原先给的长度为mmm的序列,并求出出现的位置。n,m≤105n,m≤10^5n,m≤105解法表示这道题yy了很久……KMP可以和主席树放在一起考察比较诡异……看到要求出现的位置,第一感应该是字符串哈希或者是KMP。但是发现字符串哈希并不是特别好写,所以就考虑如何...原创 2018-10-17 21:08:00 · 172 阅读 · 0 评论 -
bzoj 2653 middle 二分答案+主席树
题面题目传送门解法其实这道题严格上说并不是主席树,而是可持久化线段树。显然答案满足单调性,假设我们当前二分到的是midmidmid,那么对应的中位数即为a[mid]a[mid]a[mid](a[mid]a[mid]a[mid]表示从小到大排完序之后的第midmidmid小,不是这个序列中的数显然可以不用考虑)。然后将小于它的数变成-1,其他数变成1。然后对于[a,b],[c,d][a,b...原创 2018-10-18 21:33:37 · 171 阅读 · 0 评论 -
bzoj 3218 a + b Problem 最小割+主席树优化建图
题面题目传送门解法比较显然的最小割,不妨考虑如何建图。首先将SSS连向每一个点iii,容量为w[i]w[i]w[i],表示割这条边点iii的颜色为黑色;iii向TTT连容量为b[i]b[i]b[i]的边,表示割这条边点iii的颜色为白色。对于jjj满足1≤j<i1\leq j<i1≤j<i且a[j]∈[l[i],r[i]]a[j]\in [l[i],r[...原创 2019-03-30 18:14:55 · 152 阅读 · 0 评论