知识点简单总结——二项式反演

知识点简单总结——二项式反演

二项式反演

二项式反演的最基础形式为:

\[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 ) $ 。

例题

先咕了,之后再补。

posted @ 2020-08-02 14:37  RikukiIX  阅读(449)  评论(0编辑  收藏  举报