虚树
构造方法
考虑这样一类问题,给一棵树
为了方便讨论, dfs 序为关键字从小到大排序的有序集合。
我们只会留下绿圈的点,这就是虚树的思想。
可是还有很多点不是关键点呀?
没错,将一条条链合并,这样保证了我们建出来的虚树大小规模是
压缩方法基于下面这个性质:
小粉兔的一句话很精辟,虚树是所有关键点形成的极小连通子树。
注意
- 虚树的构建需要去重。
- 不一定要把虚树建出来。
例题
P3320 [SDOI2015]寻宝游戏
考虑一个可爱的性质,虚树边权和为:
这道题就不用建出虚树。
考虑加入一个点 dfs 序分类讨论即可。
蓝色是加入的点,红色是要删除的权,绿色是加入的权。