摘要: 树链剖分就是把树拆成一系列链,然后用数据结构对链进行维护。 树链剖分主要变量: dep[x]表示x节点的深度,size[x]表示以x为根节点的树的大小,son[x]表示x的重儿子(重儿子即x的所有儿子中size最大的儿子), fa[x]表示x的父亲,top[x]表示x所属重链的头部。 首先,dep, 阅读全文
posted @ 2018-03-09 10:53 geniuschenjj 阅读(114) 评论(1) 推荐(0) 编辑
摘要: treap相对splay容易理解 对每个节点x,tr[x].rd=rand(); 然后对tr[x].rd操作,使其满足堆性质 阅读全文
posted @ 2018-03-09 10:18 geniuschenjj 阅读(106) 评论(1) 推荐(0) 编辑
摘要: 花了一天时间调试终于过了。网上非指针的splay太少了,学长大佬们拒绝指导,只能靠自己了。 其实splay是为了保证时间复杂度,所以每次操作进行一次splay。 splay共三种操作:zig,zig_zig,zig_zag。 设当前点为x,y=fa[x],z=fa[y] 1.zig y为root时直 阅读全文
posted @ 2018-03-09 10:12 geniuschenjj 阅读(203) 评论(1) 推荐(0) 编辑