首页 > 代码库 > 小结:平衡树
小结:平衡树
概要:
平衡树大概是最常用的高级数据结构了,而treap用来进行一般的信息维护,splay用来进行高级的信息维护(比如区间操作、lct等)(map、set党自重QAQ)。
技巧及注意:
细节十分多。
treap中如果设小根堆的话(最好设小根堆),null的重量要设置为inf。
平衡树中的重复元素两种处理方法,看情况使用。
平衡树中的rank和select要和上一种注意事项结合起来,多想想。
splay中如果写lct要特判根。treap很多地方要传指针引用,splay完全不必。写好后最好手造几组hentai的数据(对应着题目的要求来),然后看是不是会re或wa。
数组一定不要开小,能开多大就开多大。
例题:
treap:【BZOJ】3224: Tyvj 1728 普通平衡树(某不科学的oj),【BZOJ】3196: Tyvj 1730 二逼平衡树(区间第k小+树套树),【BZOJ】1146: [CTSC2008]网络管理Network(树链剖分+线段树套平衡树+二分 / dfs序+树状数组+主席树),【BZOJ】1862: [Zjoi2006]GameZ游戏排名系统 & 1056: [HAOI2008]排名系统(treap+非常小心)
splay:模板及其细节在这里Splay 伸展树,【BZOJ】1507: [NOI2003]Editor(Splay),【BZOJ】1901: Zju2112 Dynamic Rankings(区间第k小+树套树),【BZOJ】1503: [NOI2004]郁闷的出纳员(Splay),然后是lct,看我另一个专题吧。。
小结:平衡树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。