知识点简单总结——二项式反演
知识点简单总结——二项式反演
二项式反演
二项式反演的最基础形式为:
\[f[ n ] = \sum\limits_{ i = 0 }^{ n } ( -1 )^{ i } \binom{ n }{ i } g[ i ]
\Longleftrightarrow
g[ n ] = \sum\limits_{ i = 0 }^{ n } ( -1 )^{ i } \binom{ n }{ i } f[ i ]
\]
这个的证明基于多步容斥。
由这个形式可以进一步推出常用的形式:
\[f[ n ] = \sum\limits_{ i = 0 }^{ n } \binom{ n }{ i } g[ i ]
\Longleftrightarrow
g[ n ] = \sum\limits_{ i = 0 }^{ n } ( -1 )^{ n - i } \binom{ n }{ i } f[ i ] \\
f[ n ] = \sum\limits_{ i = n }^{ m } \binom{ i }{ n } g[ i ]
\Longleftrightarrow
g[ n ] = \sum\limits_{ i = n }^{ m } ( -1 )^{ i - n } \binom{ i }{ n } f[ i ]
\]
啊是的证明又咕了。(被打)
应用
有容斥的地方就可能用到它。
一种很常见的是如下面两道例题的“恰好”和“钦定”的转化。
bzoj2839 集合计数
题意
n个元素的集合有 $ 2^{ n } $ 个子集,选出至少一个集合使得交集大小正好为 $ k $ 的个数。 $ n \le 10^{ 6 } $ 。
题解
套路化地交集改钦定。
钦定的式子很简单的是 $ g( i ) = \binom{ n }{ i } ( 2^{ 2 ^{ n - i } } - 1 ) $ ,即钦定哪 $ i $ 个必须选,从包含全部这 $ i $ 个元素的集合中选至少一个。
答案就是 $ f( k ) =\sum\limits_{ i = k }^{ n } ( -1 )^{ i - k } \binom{ n }{ i } g( i ) $ 。
[JSOI2011]分特产
题意
有 $ n $ 个人和 $ m $ 种物品,第 $ i $ 种物品有 $ a_i $ 个,同种物品之间没有区别。现在要将这些物品分给这些人,使得每个人至少分到一个物品,求方案数模 $ 10^{ 9 }+7 $ 。
题解
正难则反,“每个人都有分到物品”转化为“0个人没分到物品”。
设 $ f( i ) $ 表示恰好 $ i $ 个人分不到, $ g( i ) $ 表示钦定某 $ i $ 个人分不到。
\[g( i ) = \binom{ n }{ i } \prod\limits_{ j = 1 }^{ m } \binom{ n-i+a_{ j } - 1 }{ a_{ j } - 1 }
\]
之后则有 $ f( 0 ) =\sum\limits_{ i = 0 }^{ n } ( -1 )^{ i } \binom{ n }{ i } g( i ) $ 。
例题
先咕了,之后再补。