卧薪尝胆,厚积薄发。
猫题6
Date: Mon Feb 25 13:14:08 CST 2019 In Category: NoCategory

Description:

给定一棵大小为 $n$ 的树, $q$ 次询问,每次给定一个点集 $S$ ,询问包含 $S$ 的连通块数。
$1\leqslant n\leqslant 3\times 10^5,1\leqslant \sum|S|\leqslant 10^6$

Solution:

发现这个用虚树 $DP$ 不是很好做,因为要考虑虚树之外的点。
考虑整体 $DP$ ,首先一遍 $DP$ 求出以每个点为根的联通块个数,然后把所有询问放在一起,对于某条父子边 $k\to c$ ,如果 $c$ 里面有特殊点,那么就要乘上对应的 $DP$ 值,否则应该乘上最开始那一遍 $DP$ 的值,于是我们可以对子树中有点的特殊计算,没有的区间乘就可以了,注意要特殊处理一下最高点到根的那部分。

Code:


没有代码
In tag: DP-整体DP
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡