反演题乱做

子集反演:

\[f_S=\sum\limits_{T\in S}g_T \]

\[g_S=\sum\limits_{T\in S}(-1)^{|S|-|T|}f_S \]

\(f\)\(g\) 均为集合到实数的函数。

证明:

\[g_S=\sum\limits_{T\in S}(-1)^{|S|-|T|}\sum\limits_{O\in T}g_O \]

\[g_S=\sum\limits_{O\in S}g_O\sum\limits_{T\in S/O}(-1)^{|T|} \]

定义函数 \(sgn(S)=\sum\limits_{T\in S}(-1)^{|S|}\),包含空集。

\[sgn(S)=\sum\limits_{i=0}^{|S|}\binom{|S|}{i}(-1)^i1^{|S|-i}=0^{|S|}=[|S|=0] \]

因此:

\[g_S=\sum\limits_{O\in S}g_O\times[O=S]=g_S \]

考虑给出了 \(f\),如何快速求 \(g\)

首先回顾一下高维前缀和。这里钦定每一维的大小为 \(2\),按照维度做前缀和即可。这样知道 \(g\) 后求 \(f\) 是十分容易的。

知道 \(f\)\(g\) 和知道 \(g\)\(f\) 的区别不大,维护两个前缀和,分别钦定子集大小为奇数/偶数的时候系数为 \(1\)\(-1\) 即可。

min-max 容斥:

\[\max(S)=\sum\limits_{T\in S}(-1)^{|T|+1}\min(T) \]

证明:

不妨枚举最小值,产生的贡献形如 \(x\times\sum\limits_{i=0}^y\binom{y}{i}(-1)^{i+1}\),分析后面的贡献,不难类似前面 \(sgn(S)\) 函数,得到产生贡献当且仅当 \(y=0\)

扩展:

\[kthmax(S)=\sum\limits_{T\in S}(-1)^{|T|-k}\binom{|T|-1}{k-1}\min(T) \]

证明小于第 \(k\) 大的数不会产生贡献:

\[x\times\sum\limits_{i=0}^{y}(-1)^{i-k}\binom{y}{i}\binom{|T|-1}{k-1} \]

随便提一下就能发现没有贡献。

二项式反演:

\[f(n)=\sum\limits_{i=0}^n\binom{n}{i}g(i) \]

\[g(n)=\sum\limits_{i=0}^n\binom{n}{i}(-1)^{n-i}f(i) \]

证明:

存在容斥意义上的组合证明 。

\[g(n)=\sum\limits_{i=0}^n\binom{n}{i}(-1)^{n-i}\sum\limits_{j=0}^i\binom{i}{j}g(j) \]

\[g(n)=\sum\limits_{i=0}^ng(i)\sum\limits_{j=i}^n\binom{n}{j}\binom{j}{i}(-1)^{n-j} \]

\[g(n)=\sum\limits_{i=0}^ng(i)\sum\limits_{j=i}^n\binom{n}{i}\binom{n-i}{j-i}(-1)^{n-j} \]

\[g(n)=\sum\limits_{i=0}^ng(i)\binom{n}{i}(-1)^n\sum\limits_{j=i}^n\binom{n-i}{j-i}(-1)^j \]

单独研究后面的部分 \(\sum\limits_{j=i}^n\binom{n-i}{j-i}(-1)^j=\sum\limits_{j=0}^{n-i}\binom{n-i}{j}(-1)^{i+j}\),根据上面的 \(sgn(S)\),该式为 \((-1)^i\times[n=i]\)


二项式反演、子集反演、min-max 容斥都是利用构造一些易于求解的函数来解决问题。

posted @ 2025-02-04 20:44  BYR_KKK  阅读(22)  评论(0)    收藏  举报