【洛谷 P3369】 普通平衡树【平衡树 Treap】
解题思路
平衡树:利用BST性质查询和修改,利用随机和堆优先级来保持平衡,把树的深度控制在log N,保证了操作效率
基本平衡树有以下几个比较重要的函数:新建,插入,删除,旋转
节点的基本属性有val(值),dat(随机出来的优先级)
通过增加属性,结合BST的性质可以达到一些效果,如size(子树大小,查询排名),cnt(每个节点包含的副本数)等
由于每个操作用代码比较好介绍,这里就直接放代码介绍:
int ch[maxn][2];//[i][0]代表i左儿子,[i][1]代表i右儿子
新增节点...
原创
2021-08-18 16:42:13 ·
443 阅读 ·
0 评论