数据结构--启发式合并
文章平均质量分 67
ez_yww
这个作者很懒,什么都没留下…
展开
-
【XSY1536】【BZOJ3522】【BZOJ4543】【POI2014】Hotel 树形DP 长链剖分 启发式合并
题目描述 给你一棵树,求有多少个组点满足x≠y,x≠z,y≠z,distx,y=distx,z=disty,zx\neq y,x\neq z,y\neq z,dist_{x,y}=dist_{x,z}=dist_{y,z}原创 2017-08-12 12:47:15 · 618 阅读 · 0 评论 -
【AGC014E】Blue and Red Tree 并查集 启发式合并
题目描述 有一棵nn个点的树,最开始所有边都是蓝边。每次你可以选择一条全是蓝边的路径,删掉其中一条,再把这两个端点之间连一条红边。再给你一棵树,这棵树的所有边都是红边,问你最终能不能把原来的树变成这棵新树。 n≤100000n\leq 100000题解 考虑最后一条加的边,那么当前也有一条相同的蓝边。也就是说,如果把这两棵树合在一起,这两个点之间会有两条边。然后可以把这两个点缩成一个点。 所原创 2017-10-25 16:37:36 · 866 阅读 · 0 评论 -
启发式合并&线段树合并&treap合并&splay合并
启发式合并 有nn个集合,每次让你合并两个集合,或询问一个集合中是否存在某个元素。 我们可以用平衡树/set维护集合。 对于合并两个A,BA,B,如果|A|<|B||A|<|B|,那么我们就把AA中的每个元素暴力加到BB中,否则就把BB中的元素暴力加到AA中。 对于一次把AA中的每个元素暴力加到BB中的操作,|A||A|会变成|A|+|B||A|+|B|,也就是说大小至少会翻倍,所以原创 2017-08-13 19:48:06 · 4666 阅读 · 0 评论