平衡树
verdin黄大锤
afo啦!
展开
-
洛谷 3391 文艺平衡树 splay模板
题目:文艺平衡树 资料:yyb大佬的讲解zcy大佬的代码 思路:splay模板。要加两个虚点1、n+2,原序列是 [2,n+1]。一直在想为什么翻转不会破坏bst的性质,后来才发现这里的bst是对数的编号来说的,与值无关。寻找一段区间,只需要把它的前驱旋转到根,后继旋转到根的右儿子,此时根的右儿子的左子树就是这段区间。要用lazy tag优化。 ...原创 2018-03-28 13:22:29 · 321 阅读 · 0 评论 -
洛谷 3369 普通平衡树 splay模板
题目:普通平衡树 参考:yyb大佬的代码luogu大佬的题解 代码:#include<bits/stdc++.h>using namespace std;#define maxn 100000#define inf (1<<30)struct Node { int val; int cnt; int fa,ch[2]; in...原创 2018-04-01 22:14:22 · 325 阅读 · 0 评论 -
UVA11922 Permutation Transformer
题目:Permutation Transformer思路:splay分裂、合并、区间翻转模板代码:using namespace std;#define maxn 100000struct Node { int fa,ch[2]; int sz,lzy; void init() { fa=ch[0]=ch[1]=lzy=0; ...原创 2018-08-06 18:32:44 · 193 阅读 · 0 评论 -
洛谷 P2286 [HNOI2004]宠物收养场
题目:宠物收养场思路:由于同一时间不可能同时有人和狗,所以只需要建立一棵平衡树,赋予一个属性代表人或狗。然后对于领养操作,查找前驱后继,取差的绝对值最小,删除即可。代码:#include<bits/stdc++.h>using namespace std;#define maxn 80000#define read(x) scanf("%d",&x)#def...原创 2019-03-12 21:39:18 · 177 阅读 · 0 评论