专栏文章

题解:P5291 [十二省联考 2019] 希望

P5291题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mincz6u0
此快照首次捕获于
2025/12/02 00:23
3 个月前
此快照最后确认于
2025/12/02 00:23
3 个月前
查看原文
dp 的部分其它题解说得很详细了,重点说一下容斥的想法,即使想不到这个简洁明了的点减边也可以较为容易地推出该结论。
考虑一个集合点 uu 合法的方案数,这要求每个连通块内的点到 uu 的距离不超过 LL。有 dpu,idp_{u,i} 表示 uu 子树内部包含 uu 的连通块,所有点到 uu 的距离不超过 ii 的方案数。可以长剖+换根解决一个点的问题,但是会算重。
子集容斥,考察一个集合合法的方案数。大概是对于这个集合的虚树,然后把叶子的子树部分与根外面的部分乘起来。这个方向感觉很没有前途,可以放弃把这玩意儿放到树上 dp 的想法。但是这也启发一个性质:如果一个集合合法,它们的斯坦纳树也是合法的,所以只需要对所有树上连通块进行容斥。
计数对象转变为树上连通块,那么先算一下容斥系数,考虑所有以其为斯坦纳树的集合 SS(1)S1(-1)^{|S|-1} 之和。一个连通块对应到 2c2^c 个集合,其中 cc 是该连通块的非叶节点个数。可以发现大多数情况下,一个连通块对应到偶数个集合,而且系数恰好抵消为 00。当且仅当该连通块 c=0c=0,也就是该连通块全都是叶子的时候才会有系数。而连通块内的点全都是叶子(度数 1\leq 1)只有一条边和一个点两种情况。其中一条边的系数是 1-1,点的系数是 11。这样就得到了本题的 key observation。
点的情况第一段已经讨论过了。边的情况不像第二段说的对一个集合计数那么复杂,和点的情况十分类似。本题真正的毒点还是 dp 细节的处理。

评论

0 条评论,欢迎与作者交流。

正在加载评论...