浅谈"$fake$树"——虚树

树形$dp$利器——"$fake$"树(虚树$qwq$)

问题引入:

在许多的树形动规中,很多时候点特别多,而又有一些毒瘤操作,导致很多时候,原本优秀的算法变得很鸡肋,而虚树就是解决这种问题的一把利器

那让我们来看一道例题:

洛谷P2495 [sdoi2011]消耗战

一句话题意:给定一棵$n$个节点的树,$m$次询问,每次给出几个点,要你删除若干条边使得这些点不和根节点联通

我们看到数据范围:

$n<=2e5,\sum k<=5e5$

 考虑朴素的$dp$,状态和方程都很好想,大概就是:
 
对于一个点,可以删除它到根节点的边的最小值,或者是把子树中有标记点的边的最小值删除(当然还要考虑当前点是不是标记点等因素,这不是重点反正$qwq$)
 
那么一次询问就是$O(n)$,看上去确实很优秀了,但是有$m$次询问,$m$好像还无上限,那么总时间复杂度就是$O(nm)$的算法了,$m$大一点就会炸得飞起,那么虚树就诞生了$qwq$
 
 

猜你喜欢

转载自www.cnblogs.com/yexinqwq/p/10280773.html