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

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

二项式反演

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

[f[ n ] = sumlimits_{ i = 0 }^{ n } ( -1 )^{ i } inom{ n }{ i } g[ i ] Longleftrightarrow g[ n ] = sumlimits_{ i = 0 }^{ n } ( -1 )^{ i } inom{ n }{ i } f[ i ] ]

这个的证明基于多步容斥。

由这个形式可以进一步推出常用的形式:

[f[ n ] = sumlimits_{ i = 0 }^{ n } inom{ n }{ i } g[ i ] Longleftrightarrow g[ n ] = sumlimits_{ i = 0 }^{ n } ( -1 )^{ n - i } inom{ n }{ i } f[ i ] \ f[ n ] = sumlimits_{ i = n }^{ m } inom{ i }{ n } g[ i ] Longleftrightarrow g[ n ] = sumlimits_{ i = n }^{ m } ( -1 )^{ i - n } inom{ i }{ n } f[ i ] ]

啊是的证明又咕了。(被打)

应用

有容斥的地方就可能用到它。

一种很常见的是如下面两道例题的“恰好”和“钦定”的转化。

bzoj2839 集合计数

题意

n个元素的集合有 $ 2^{ n } $ 个子集,选出至少一个集合使得交集大小正好为 $ k $ 的个数。 $ n le 10^{ 6 } $ 。

题解

套路化地交集改钦定。

钦定的式子很简单的是 $ g( i ) = inom{ n }{ i } ( 2^{ 2 ^{ n - i } } - 1 ) $ ,即钦定哪 $ i $ 个必须选,从包含全部这 $ i $ 个元素的集合中选至少一个。

答案就是 $ f( k ) =sumlimits_{ i = k }^{ n } ( -1 )^{ i - k } inom{ n }{ i } g( i ) $ 。

[JSOI2011]分特产

题意

有 $ n $ 个人和 $ m $ 种物品,第 $ i $ 种物品有 $ a_i $ 个,同种物品之间没有区别。现在要将这些物品分给这些人,使得每个人至少分到一个物品,求方案数模 $ 10^{ 9 }+7 $ 。

题解

正难则反,“每个人都有分到物品”转化为“0个人没分到物品”。

设 $ f( i ) $ 表示恰好 $ i $ 个人分不到, $ g( i ) $ 表示钦定某 $ i $ 个人分不到。

[g( i ) = inom{ n }{ i } prodlimits_{ j = 1 }^{ m } inom{ n-i+a_{ j } - 1 }{ a_{ j } - 1 } ]

之后则有 $ f( 0 ) =sumlimits_{ i = 0 }^{ n } ( -1 )^{ i } inom{ n }{ i } g( i ) $ 。

例题

先咕了,之后再补。

原文地址:https://www.cnblogs.com/rikurika/p/13418722.html