启发式合并
200815147
这个作者很懒,什么都没留下…
展开
-
3123: [Sdoi2013]森林 主席树的启发式合并
题面是图片就不复制了…… 题解: 询问可以用主席树轻松地解决,但是连边的话就有点麻烦了,本题采用启发式合并来解决这个问题。启发式合并实际上就是把小的合并到大的上面,这样每次size至少都会翻倍,最多翻倍lognlogn次,对于主席树来说,每次合并重新建树要nlognnlogn的时间,所以总的时间复杂度为O(nlog2n)O(nlog^2n)。注意连边的时候一定要连双向边。 代码: #inc原创 2018-01-08 21:00:36 · 311 阅读 · 0 评论 -
4919: [Lydsy1706月赛]大根堆 multiset 启发式合并 思路
Description 给定一棵n个节点的有根树,编号依次为1到n,其中1号点为根节点。每个点有一个权值v_i。 你需要将这棵树转化成一个大根堆。确切地说,你需要选择尽可能多的节点,满足大根堆的性质:对于任意两个点i,j,如果i在树上是j的祖先,那么v_i>v_j。 请计算可选的最多的点数,注意这些点不必形成这棵树的一个连通子树。 题解: 好题。考虑一条链的情况,就是求自底向上求最...原创 2018-04-01 20:11:09 · 394 阅读 · 0 评论