平衡树
QAQQQQQQQQQQQ
菜
展开
-
平衡树【Splay】区间翻转【模板】
luoguP3391一道模板题学习了splaysplaysplay区间翻转的姿势具体就是先建两个虚拟节点1,n+21,n+21,n+2,然后按节点下标+1+1+1将区间树建出来,这时候排名为kkk的就是第kkk个数。翻转的时候先把(l+1)−1(l+1)-1(l+1)−1提到根,再把(r+1)+1(r+1)+1(r+1)+1提到根的右儿子,然后(r+1)+1(r+1)+1(r+1)+1的左儿...原创 2018-10-25 08:34:37 · 741 阅读 · 2 评论 -
平衡树【Splay】【模板】
又是 机房最后一个学splaysplaysplay的人参考dalaodalaodalao博客写的非常好!最后放上我的代码:(有个地方应该写ch[root][0]ch[root][0]ch[root][0]手残写成ch[root][1]ch[root][1]ch[root][1]还查不出来TTT成狗#include<iostream>#include<cstdio>...原创 2018-10-24 17:12:41 · 133 阅读 · 0 评论 -
平衡树--[ZJOI2007]报表统计
传送门平衡树裸题,用multisetmultisetmultiset和堆好像也能做就是用两个平衡树分别维护相邻两数差和每个数的数值,然后求相邻两数差最小值就是求第一个平衡树里的最小值,求任意两数差最小值就用第二个平衡树根查一下前驱后继这样维护一下最小值就好了但写平衡树的话就是一个卡常神题了···之前一直ttt掉一个点,改了改insertinsertinsert就过了(吸氧吸氧)#inc...原创 2018-11-17 00:26:14 · 89 阅读 · 0 评论 -
LCT--luogu P2173 [ZJOI2012]网络
传送门LCTLCTLCT裸题,开ccc个lctlctlct就好了板子还是不太熟qwqqwqqwq不过这道题的修改边的操作还是比较有意思的一开始写的复杂而且还不太对,改了之后就AAA了#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#inclu...原创 2018-11-21 18:08:07 · 148 阅读 · 0 评论 -
后缀数组+平衡树--luoguP4070 [SDOI2016]生成魔咒
传送门首先有一个结论:一个串中本质不同的子串个数为n×(n+1)2−∑i=1nheight[i]\frac{n\times(n+1)}{2}-\sum_{i=1}^nheight[i]2n×(n+1)−∑i=1nheight[i]因为正着考虑的话每次要加很多个后缀,不好维护,所以可以把序列倒过来看,每次加一个字符相当于加一个后缀,那就可以先预处理出整个序列的heightheighthei...原创 2018-12-05 22:19:28 · 185 阅读 · 0 评论 -
set+LCA--luoguP3320 [SDOI2015]寻宝游戏
传送门说是虚树…其实也没真正用到虚树因为他最后要走回去,所以每条边都会经过两遍,选哪个点都无所谓,所以可以按照dfsdfsdfs序排序,加入一个新点的时候就把前驱后继的距离减掉再加上它到前驱和它到后继的距离,这个求一下lcalcalca就行,删掉点就是反过来。一开始setsetset写的不太好rerere了,注意判一下它没有前驱或者后继的情况代码如下:#include<iostre...原创 2019-01-15 14:37:55 · 298 阅读 · 0 评论 -
【模板】替罪羊树
本来是打开了一道点分治的题,后来发现要用高速平衡树据说splaysplaysplay和fhq&nbsp;Treapfhq\ Treapfhq&nbsp;Treap都非常非常的慢据说替罪羊树是除了红黑树以外最快的平衡树?于是就来学习了一下核心思想就是每次插入不改变树的形态,当树极不平衡时就把它拍扁重构alpha=0.8alpha=0.8alpha=0.8的时候据说最快模板题:luoguP...原创 2019-01-16 11:30:52 · 422 阅读 · 0 评论