重量平衡树
定义
一棵单次操作影响最大子树大小均摊/期望较小的平衡树
性质
显然,根据定义,我们能支持在平衡树上维护一些与子树有关的信息
在重量平衡树上,我们当做旋转操作后,对其进行暴力重构的复杂度可以接受
在OI领域,我们一般常用的重量平衡树非旋的替罪羊树或者基于旋转的treap
treap
重量平衡分析
对于插入操作,不妨设点 最终旋转到了祖先 ,那么代表点 的权值是子树 中最小的
概率为 ,重构一次整个子树 代价为 故期望代价为
又因为treap的期望高度为 ,则期望 次代价,故期望复杂度为
对于删除操作,考虑直接重构子树
由于点的期望高度是 ,易得点的期望子树大小为
所以期望复杂度为
动态下标
对于平衡树上的两点比较大小(并非容易比较的简单权值),普通平衡树是 的
重量平衡树通过维护动态下标可以做到 查询
对于每一个点赋予一个实数区间 ,其左儿子分配 ,右儿子
对于旋转操作每次给子树内重新分配下标,可通过比较两点区间中点比较大小
平衡树套树
重量平衡树支持套上维护子树信息的其它树,例如线段树
复杂度是一般是