
【数据结构】主席树
文章平均质量分 64
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 · 222 阅读 · 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 · 176 阅读 · 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 · 160 阅读 · 0 评论 -
bzoj 5319 [Jsoi2018]军训列队 主席树
题面 题目传送门 解法 主席树…… 先考虑一个比较显然的贪心,将这段区间的所有数从小到大排序,然后对应相减计算出绝对值之和就是答案了。这个贪心毫无疑问是正确的 时间复杂度?O(nqlogn)O(nqlogn)O(nq\log n) 然后我们就可以取得404040分的好成绩 考虑如何优化这个过程,可以发现,排序过后一定会分成两段,前一段区间里原本的数都小于对应位置的下标,后一段都不小...原创 2018-09-02 12:50:29 · 204 阅读 · 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 · 192 阅读 · 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 · 205 阅读 · 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 · 180 阅读 · 0 评论