ZJOI2016 小星星

ZJOI2016 小星星

求一个从 树 \(T\) 到 图 \(S\) 的映射,使得树上的两个点如果在树上有边,也会在图上有边,并且两个点不可以映射到同一个点上。

\(n\le 17,m\le \frac{n(n-1)}{2}\)

\(\rm Sol:\)

遇事不决,容斥当前。

先考虑一个暴力做法,我们设 \(f_{i,j,S}\) 表示考虑以 \(i\) 为根的子树,\(i\) 映射到了点 \(j\),点 \(i\) 处的内部映射状态为 \(S\) 的方案数,转移直接枚举子集,容易验证链的情况复杂度最劣,为 \(\mathcal O(3^n\times n)\)

然而考虑容斥原理,我们试图让图的映射是可重的,那么设 \(G(S)\) 表示最后映射结果满足为 \(S\) 的子集的方案数,根据容斥原理,我们容易得到答案。

枚举集合 \(S\),然后直接做树形 dp 即可,复杂度为 \(\mathcal O(2^n\times n^3)\)

posted @ 2020-09-11 20:09  Soulist  阅读(88)  评论(0编辑  收藏  举报