随笔分类 -  各种平衡树

摘要:原理 替罪羊树不依靠旋转,而是依靠重构不平衡的子树使整棵树达到平衡状态。 变量介绍 1 int n; 2 struct Node { 3 int val,num; //节点的值,数量 4 int siz,hid; //以该节点为根的子树中未被删的节点数和已被删的节点数 5 int son[2],fa 阅读全文
posted @ 2018-08-15 18:49 A星际穿越 阅读(438) 评论(2) 推荐(1)
摘要:原理 以随机数维护平衡,使树高期望为logn级别 不依靠旋转,只有两个核心操作merge(合并)和split(拆分) 因此可持久化 先介绍变量 1 const int N=100005; 2 int n; 3 struct Node { 4 int val,key,siz; //权值,随机权值,子树 阅读全文
posted @ 2018-08-14 16:13 A星际穿越 阅读(486) 评论(0) 推荐(0)
摘要:先介绍变量定义 1 int n; 2 struct Node { //Splay节点定义 3 int fa,son[2],val,num,siz; //fa:它爸爸;son它儿子,左0右1;val:这个节点的值 4 //num:这个值的数量;siz:以它为根的子树的大小 5 void res() { 阅读全文
posted @ 2018-08-12 18:43 A星际穿越 阅读(426) 评论(0) 推荐(0)