题解:P5291 [十二省联考 2019] 希望
_Communist · · 题解
dp 的部分其它题解说得很详细了,重点说一下容斥的想法,即使想不到这个简洁明了的点减边也可以较为容易地推出该结论。
考虑一个集合点
子集容斥,考察一个集合合法的方案数。大概是对于这个集合的虚树,然后把叶子的子树部分与根外面的部分乘起来。这个方向感觉很没有前途,可以放弃把这玩意儿放到树上 dp 的想法。但是这也启发一个性质:如果一个集合合法,它们的斯坦纳树也是合法的,所以只需要对所有树上连通块进行容斥。
计数对象转变为树上连通块,那么先算一下容斥系数,考虑所有以其为斯坦纳树的集合
点的情况第一段已经讨论过了。边的情况不像第二段说的对一个集合计数那么复杂,和点的情况十分类似。本题真正的毒点还是 dp 细节的处理。