各类反演总结

反演就是有两个函数 \(f\)\(g\),可以简单得出 \(g\) 转化成 \(f\) 的式子,那么就可以从 \(f\) 推回 \(g\)

内容:

  • 子集反演

  • 二项式反演

  • 莫比乌斯反演

  • 欧拉反演

  • 斯特林反演

子集反演

\(f(S) = \sum_{T \in S} g(T)\),那么 \(g(S) = \sum_{T \in S} (-1)^{|S|-|T|} f(S)\)

其实就是一个容斥,把 \(f(S)\) 当作答案集合 \(\in S\) 的方案数,\(g(S)\) 当作答案集合 \(=S\) 的方案数。

\(f(S) = \sum_{S \in T} g(T)\),那么 \(g(S) = \sum_{S \in T} (-1)^{|T|-|S|} f(T)\)

同样的道理,也是一个容斥。


[ZJOI2016] 小星星

给一张 \(n\ (n \le 17)\) 个点的无重边无自环的无向图,给一棵 \(n\) 个点的树,然后你现在要给这棵树重标号,问有多少种重标号的方案使得这棵树是原图的一棵生成树。

先树形 \(\rm DP\),设 \(f_{i,j,S}\) 表示点 \(i\) 的子树,点 \(i\) 选哪个,子树对应点集 \(S\) 的方案数。

转移时对于点 \(x\),枚举 \(x\) 选哪个,然后枚举儿子合并。

这样是 \(\mathcal O(n^2 3^n)\) 的。

可以直接 \(\rm FWT\) 优化到 \(\mathcal O(2^n n^3)\)

但还可以考虑容斥。

posted @ 2023-12-22 22:48  Tx_Lcy  阅读(27)  评论(0)    收藏  举报