![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
虚树
litble
Away From OI已久,一天天变菜中,博客平时不咋看,也没能力答疑和改错了,因此不会互动见谅orz
展开
-
bzoj5287/洛谷P4426/loj2496 毒瘤 虚树+树形dp
题目分析首先orz一下 这是一道虽然不是数据结构,但也足够毒瘤了的毒瘤题。 原图应该是一棵树+若干非树边,题意转化为求独立集数量。 先考虑暴力做法,对于与非树边相连的点,我们暴力枚举它是选,还是不选。然后再跑一遍树形dp统计答案,方程显而易见: f[x][0]=f[x][0]*(f[son][0]+f[son[1]); f[x][1]=f[x][1]*f[son][0]; 当然这个...原创 2018-05-24 16:53:53 · 753 阅读 · 0 评论 -
bzoj3572 虚树学习笔记
例题:bzoj3572/洛谷P3233 如果,只是考虑每个点被谁控制的话,用两个dfs就能够搞定了。 可是这题n和Q都很大,只有∑m∑m\sum m相对较小,因此我们应该考虑一种基本上只跟询问点有关的算法。 那就是虚树。 现在我们有若干询问点,一棵以1为根的树。为了能够将询问点按照原本的树上路径连成一棵新树,我们还需要将这些询问点按照dfs序排序后,相邻两个询问点之间的lca,这些点组成的...原创 2018-02-24 16:28:28 · 426 阅读 · 0 评论 -
loj 6184 无心行挽 虚树+DP+倍增
题目分析首先,这题肯定要用虚树。接下来,你会发现,使得f(u)f(u)f(u)最大的uuu,可能存在于三个位置:虚树上虚树上一个没有关键点的子树中虚树上的一条边中于是便分类讨论。对于第一种情况,只需要在虚树上做DP求出虚树上的每个点xxx到最近的关键点的距离dtkp(x)dtkp(x)dtkp(x)即可(dist to key point)对于第二种情况,我们对整棵树DP,得到...原创 2019-01-21 17:21:48 · 2987 阅读 · 0 评论