平衡树
A1847225889
在一次次翻车中吸取教训……
展开
-
Splay模板
struct Splay_Tree { struct Node { int fa,c[2]; int v; } d[100001]; int cnt,root; inline Splay_Tree(){cnt=root=0;} #define get(x) (d[d[x].fa].c[0]!=x) inline原创 2018-01-25 13:25:00 · 202 阅读 · 0 评论 -
[JZOJ5977] 【清华2019冬令营模拟12.15】堆
题目 其中n,q≤500000n,q\leq 500000n,q≤500000 题目大意 让你维护一个堆。支持一下操作: 在某个点的下面加上另一个点,然后进行上浮操作。 询问某一点的权值。 思考历程 实际上,这题我还没有AC。不过思想是差不多了。 一眼看这题,诶,不就是那道中学生数据结构题吗? 直接树链剖分,然后splay一波搞定! 思想还是很简单的! 但是感觉有点长…… 正解 上面的这...原创 2018-12-20 18:55:03 · 304 阅读 · 0 评论 -
非旋Treap及其可持久化
平衡树这种东西,我只会splay。splay比较好理解,并且好打,操作方便。 我以前学过SBT,但并不是很理解,所以就忘了怎么打了。 许多用平衡树的问题其实可以用线段树来解决,我们真正打平衡树的时候一般都是维护序列之类的。 维护序列时,splay特别方便,所以一般情况下打splay就好了。其它的平衡树也可以,可是如果见到翻转操作的时候,那些平衡树就会崩(至少我不知道那些平衡树有什么可以翻转的做法)...原创 2019-02-17 11:00:31 · 334 阅读 · 0 评论