替罪羊树
_beginend
这个作者很懒,什么都没留下…
展开
-
bzoj 3600: 没有人的算术 替罪羊树+线段树
题意题目分析vfk出的题,强的一逼,这里是题解。 关于替罪羊树的介绍可以去看clj13年的集训队论文《重量平衡树和后缀平衡树在信息学奥赛中的应用》。 关于这题的话,大概就是开一棵平衡树来维护每一个数的相对大小。因为要给每个点赋一个rank值来O(1)比较大小,而带旋转的平衡树在旋转操作后需要花费大量时间来维护rank,所以这里采用通过暴力重构来维护平衡的替罪羊树。 具体维护rank的过程大概就原创 2017-11-30 21:10:08 · 367 阅读 · 0 评论 -
bzoj 4066: 简单题 带部分重构的KDtree
题意你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 1 x y A将格子x,y里的数字加上A 2 x1 y1 x2 y2输出x1 y1 x2 y2这个矩形内的数字和 3 终止程序 n<=500000,操作数<=200000,强制在线,空间限制为20M。分析如果没有空间限制和强制在线的话,就可以直接离线cdq分治或二维线段树。现在要求强制在线,就只能用原创 2017-12-10 12:10:05 · 373 阅读 · 0 评论 -
bzoj 3065: 带插入区间K小值 替罪羊树套线段树
题意给出一个序列,要求资瓷以下操作: 在某个位置前插入一个数 修改某个位置的数 询问区间第k小 强制在线 原序列长度 <= 35000 插入个数 <= 35000,修改个数 <= 70000,查询个数 <= 70000 ,0 <= 每时每刻的权值 <= 70000分析由于强制在线且要插入,所以外层显然不能用线段树之类的静态数据结构,那么就考虑用平衡树。内层的话由于是找第k小,所以选用了原创 2017-12-02 07:20:21 · 465 阅读 · 0 评论 -
bzoj 3217: ALOEXT 替罪羊树套trie
题意给你一个数列,要求资瓷四个操作: 插入一个数 删除一个数 修改一个数 给出一个区间[l,r],设w为区间内第二大,问w与区间内元素异或的最大值。 n,m<=100000,元素大小小于2^20,强制在线分析都是套路题。直接外层替罪羊树内层trie就好了。注意要垃圾回收。 第一次写替罪羊树的删除操作。一开始想的是用删除节点的后继来替代删除节点,然后写的我一度开始怀疑人生。后来才知道替罪羊原创 2017-12-06 16:28:54 · 447 阅读 · 0 评论