|----平衡树
yhf_2015
无。。。
展开
-
【BZOJ 3223】文艺平衡树
题目来源:BZOJ 3223 思路: 先用权值把整棵树都建起来,然后二分的找rank,确定之后先操作翻转,打上标记,需要的时候再下放。 代码:原创 2016-12-29 13:22:18 · 177 阅读 · 0 评论 -
【BZOJ 3224】普通平衡树
题目来源:BZOJ 3114 思路: 用来练习splay,通过反复的写,有几点需要注意: void rotate(node *now){ node *fa = now->pre, *gra = now->pre->pre; int wh = now->wh(); fa->set_ch(wh, now->ch[wh^1]); now->set_ch(wh^1原创 2016-12-29 13:21:26 · 332 阅读 · 2 评论 -
【学习】Splay平衡树
#include #include #include #include #include #define fi first #define se second #define in(x) getint(&x) #define pii pair #define FOR(i,m,n) for(int i=m;i using namespace std; typedef long long原创 2016-12-29 13:23:10 · 315 阅读 · 0 评论 -
【学习】Treap平衡树
Treap简介 Treap 是指有一个随机附加域、满足堆的性质的二叉搜索树。其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为 O(logn)O(\log n)。相对于其他的二叉搜索树,Treap 的特点是实现简单,且能基本实现随机平衡的结构。 Treap特性 Treap 在基本的二叉搜索树基础上增加了一个随机附加域,整棵树不仅要满足二叉搜索树左儿子小右儿子大的性质,同时也原创 2016-12-29 13:24:24 · 322 阅读 · 0 评论 -
【BZOJ 1251】序列终结者
Splay的序列操作 注意: 更新的时候,要先确定子树不为空在进行更新。 空指针的mx值要设为-inf #include #include #include using namespace std; const int maxn = 50010; struct node{ int num, val, size, turn, mx, add; node *pre, *c原创 2017-02-05 21:07:57 · 257 阅读 · 0 评论