给定一棵n个节点的树,每个节点有个权值,1为根节点。把任意节点为根的子树中权值出现次数最多的权值称为占领这个节点的权值。 然而次数最多的权值可能有多个,要求每个节点的占领这个节点所有权值的和。 每个子树上的答案互不相关,考虑用树上启发式合并。 用一个数组记录当前子树的所有权值出现的次数,有新的次数出 ...
分类:
其他好文 时间:
2018-08-26 18:28:18
阅读次数:
177
"可持久化并查集" 题意 如题。 解法 我们考虑用主席树来维护每一个版本中,x的father,因为我们要做到可持久化, ~~所以我们不能压缩路径(可能吧)~~ ,我们就需要用到启发式合并。每次将深度较浅的合并到深度较大的集合中,并且,如果两个集合深度相同了的话,将其中的一个深度+1。剩下的就是主席树 ...
分类:
其他好文 时间:
2018-08-24 22:56:56
阅读次数:
209
所谓的启发式合并就是合并的时候把小的东西往大的东西里面一个一个插 这里顺便说一下之前刷过去的线段树合并 对于一个结点,如果两颗线段树都有此位置的结点,则直接合并两结点的信息 然后递归处理左右子树 若只有一个有,直接返回即可 最坏的情况要合并n个结点,然后每个结点合并的时间复杂度是O(logn)的,那 ...
分类:
其他好文 时间:
2018-08-24 20:45:59
阅读次数:
120
题解: 都是不错的技巧题目 t1暴力就不说了 t2dp是比较显然的 然后发现都是0,1用bitset优化 代码非常短 t3容易发现这个东西在不断合并 于是我们想到启发式合并 存疑:splay启发式合并复杂度 为了比较简单用了set的启发式合并 线段树启发式合并可以做到nlogn updata的时候计 ...
分类:
其他好文 时间:
2018-08-22 16:57:47
阅读次数:
143
" Portal arc068E " Solution ? 真实智力康复== ? 考虑一个区间是否能够对$d$有贡献,两个关键点: 1、如果区间长度$ =d$,那么必定包含一个$d$的倍数,有贡献 2、如果区间长度$ include include include using namespace s ...
分类:
其他好文 时间:
2018-08-21 13:52:56
阅读次数:
129
启发式合并 刚听到这个东西的时候,我是相当蒙圈的。特别是“启发式”这三个字莫名的装逼,因此之前一直没有学。 实际上,这个东西就是一个SB贪心。 以堆为例,若我们要合并两个堆a、b,我们有一种极其简单的做法:那就是比较一下它们的大小,将小的堆的每个元素依次插入到大的堆中。不妨设$|a|≤|b|$,则时 ...
分类:
其他好文 时间:
2018-08-16 00:49:47
阅读次数:
200
https://www.zybuluo.com/ysner/note/1248857 题面 给定一棵$n$个节点的有根树,编号依次为$1$到$n$,其中$1$号点为根节点。每个点有一个权值$v_i$。 选择尽可能多的节点,使对于任意两个点$i,j$,如果$i$在树上是$j$的祖先,那么$v_i v_ ...
分类:
其他好文 时间:
2018-08-13 23:49:50
阅读次数:
174
Description 以$1$ 为根 的 $n$ 个节点的树,每条边有一个颜色 $x$,求每一个点的子树内的好的路径的最长长度 一条路径被定义为好的当且仅当把所有经过的边的字母经过排列之后可以变成回文 "题面" Solution 理解了一下 $dsu\,on\,tree$,相比普通的启发式,省去了 ...
分类:
其他好文 时间:
2018-07-15 11:06:54
阅读次数:
191
思路:将颜色相同的建成一个链表, 变颜色的时候进行链表的启发式合并。。 因为需要将小的接到大的上边,所以要用个f数组。 ...
分类:
其他好文 时间:
2018-07-09 11:07:41
阅读次数:
155
题目分析: 好像跑得很快,似乎我是第一个启发式合并的。 把玩具看成区间。首先很显然如果有两个玩具的进出时间有$l1<l2<r1<r2$的关系,那么这两个玩具一定在不同的栈中间。 现在假设一定有解,我们怎么得到答案呢?排序会使得计算变得方便,下面我们按照左端点排序。 想象一条扫描线,从左往右,当它遇到 ...
分类:
其他好文 时间:
2018-07-07 20:43:07
阅读次数:
197