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