二项式反演(非详细)

Posted Jozky86

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二项式反演(非详细)相关的知识,希望对你有一定的参考价值。

引入

二项式反演又名广义容斥定理
二项式反演可以表示成:
f [ n ] = ∑ i = 0 n ( − 1 ) i C n i g i ⟺ g n = ∑ i = 0 n ( − 1 ) i C n i f [ i ] f[n]=\\sum_{i=0}^n(-1)^iC_{n}^{i}g_{i}⟺g_{n}=\\sum_{i=0}^{n}(-1)^iC_{n}^{i}f[i] f[n]=i=0n(1)iCnigign=i=0n(1)iCnif[i]
常用表达为:
f [ n ] = ∑ i = 0 n C n i g [ i ] ⟺ g [ n ] = ∑ i = 0 n ( − 1 ) n − i C n i f [ i ] f[n]=\\sum_{i=0}^{n}C_{n}^ig[i]⟺g[n]=\\sum_{i=0}^{n}(-1)^{n-i}C_{n}^if[i] f[n]=i=0nCnig[i]g[n]=i=0n(1)niCnif[i]
证明详见:二项式反演理解与证明

应用

恰好和至多的转换:
f [ i ] f[i] f[i]表示恰好的方案数, g [ i ] g[i] g[i]表示至多的方案数,则有: g [ n ] = ∑ i = 0 n C n i ∗ f [ i ] g[n]=\\sum_{i=0}^nC_{n}^i*f[i] g[n]=i=0nCnif[i]
根据二项式反演有:
f [ n ] = ∑ i = 0 n ( − 1 ) n − i ∗ C n i ∗ g i f[n]=\\sum_{i=0}^n(-1)^{n-i}*C_{n}^i*g_i f[n]=i=0n(1)niCnigi
g i g_i gi可以在很短的时间内求出,再用g求f就得到答案

恰好和至少的转换:
f ( i ) 表 示 恰 好 有 i 个 的 方 案 数 , g ( i ) 至 少 有 i 个 的 方 案 数 f(i)表示恰好有i个的方案数,g(i)至少有i个的方案数 f(i)ig(i)i
有式子: g ( i ) = ∑ x = i n C x i ∗ f ( x ) g(i)=\\sum_{x=i}^{n}C_{x}^i*f(x) g(i)=x=inCxif(x)
根据二项式反演有:
f ( i ) = ∑ x = i n ( − 1 ) x − i ∗ C x i ∗ g ( x ) f(i)=\\sum_{x=i}^n(-1)^{x-i}*C_{x}^i*g(x) f(i)=x=in(1)xiCxig(x)

球染色问题:n个球,k个颜色,求满足相邻颜色不同,每种颜色至少出现一次的方案数
解决方案:如果忽略每种颜色至少出现一次的限制,那么方案数就是 k ( k − 1 ) n − 1 k(k-1)^{n-1} k(k1)n1,就是一次安排颜色,除了第一次k个随便放,之后每次都是只能选k-1个(因为要和上一个不同)
f i f_i fi表示恰好使用i种颜色的方案数。 g k g_k gk表示n个球,用了k种颜色,不强制每种颜色必须出现的方案数。那么问题就是求 f n f_n fn
先将函数 f f f g g g建立联系
g [ k ] = k ( k − 1 ) n − 1 = ∑ i = 0 k C k i ∗ f [ i ] g[k]=k(k-1)^{n-1}=\\sum_{i=0}^kC_{k}^i*f[i] g[k]=k(k1)n1=i=0kCkif[i]
我们反演可得:
f [ k ] = ∑ i = 0 k C k i ∗ g [ i ] f[k]=\\sum_{i=0}^{k}C_{k}^{i}*g[i] f[k]=i=0kCkig[i]
f [ k ] = ∑ i = 0 k C k i ∗ ( − 1 ) k − i ∗ g [ i ] f[k]=\\sum_{i=0}^{k}C_{k}^i*(-1)^{k-i}*g[i] f[k]=i=0kCki(1)kig[i]

例题:

hdu P1465:最不容易系列之一
luogu P4859 已经没有什么好害怕的了
[NOI Online #2 T3]游戏

以上是关于二项式反演(非详细)的主要内容,如果未能解决你的问题,请参考以下文章

Re:从零开始的二项式反演

二项式反演及其应用

二项式反演公式证明

二项式反演学习笔记

二项式反演及其证明

二项式反演与错排问题