Part 2【反演、容斥、stiring 数】

1. 容斥

1.1 普通容斥

1.1.1

\[\left| \bigcup \limits _{i\in S} S_i \right| = \sum\limits _{T\subseteq S,T\neq\not\ni} (-1)^{|T|-1} \left| \bigcap\limits_{j\in T} S_j \right| \]

人话:所有满足任何一个条件的数的和 可以表示成:枚举一个子集,满足这个子集里的所有条件的数,加上 -1 次方的容斥系数。或者如下

1.1.2 下标形式

把式子给成下标形式,后面的选出 \(|T|\) 个数就可以用 dp 等直接处理,而不是枚举子集。

换句话说,因为 \(|T'|\) 的容斥系数是一样的,所以我们可以把长度为 \(|T'|\) 的所有方案抽象地根据 dp,组合数等方法算出来。(根据元素的相似性),从而使得复杂度从指数变成线性次方。

1.1.3 只有 1.1.1,不满足!

如果要求:\(\left| \bigcap \limits _{i=1}^n S_i \right|\) 呢?

补集转化即可:减去所有至少一个不满足的容斥。

\[\left| \bigcap \limits _{i=1}^n S_i \right|=\left| U \right|-\left| \bigcup \limits _{i=1}^n \overline{S_i} \right| \]

这里用的是下标形式,而且这也是比集合更常见的形式。

1.1.4 一般形式:(大概没用)

考虑把集合大小改成任意函数。即若

\[f(S)=\sum\limits _{T\subseteq S}g(T) \]

那么有

\[g(S)=\sum\limits _{T\subseteq S}(-1)^{|S|-|T|}f(T) \]

1.1.5 应用

鸽。

1.2 Min-Max 容斥

鸽。


2. 二项式反演

魏老师说这也是容斥。

2.0 前言——关于所有反演(包括容斥的一般形式)

我们有 2 种理解方式。

2.0.1 式子的形式

如果你的式子长得像某种反演,那么直接用公式即可。

2.0.2 组合意义

如果你求出了某个反演所需要的一个函数 \(f/g\),你就可以用这个反演求出另一个函数。

2.1 形式

2.1.1 形式一

\(f(n)=\sum\limits _{i=0}^n\binom{n}{i}g(i)\),那么 \(g(n)=\sum\limits _{i=0}^n (-1)^{n-i} \dbinom{n}{i}f(i)\)

2.1.2 形式二

\(f(i)=\sum\limits _{j=i}^n\binom{j}{i}g(i)\),那么 \(g(i)=\sum\limits _{j=i}^n (-1)^{j-i} \dbinom{j}{i}f(j)\)

2.2 理解

如何通过组合意义理解上述 \(f,g\)?多数情况下是这样:

\(f\) 表示钦定有多少个,\(g\) 表示恰好

摘录:

OI 界二项式反演的应用常结合动态规划:DP 求出钦定选择 \(i\) 个元素时的总方案,然后就可以通过二项式反演得到恰好选择 \(i\) 个元素时的方案数。

综上所述,我们总结出二项式定理的核心:通过二项式系数的容斥进行 “钦定” 和 “恰好” 的转换

2.3 一种推式子的思路

\(g\)题目要你求的东西,你需要设计一个容易求得\(f\),使之可以由 \(g\) 算出。

容易求得指的是不仅可以通过 \(g\) 算出,还要有另一种平凡的算法(式)。!!一般来说,\(f\) 设的是所有方案/钦定。

那么你就可以反演就出 \(g\) 了,其中 \(f\) 代入另一个式子。

posted @ 2024-07-17 21:47  LCat90  阅读(11)  评论(0编辑  收藏  举报