二项式反演(非详细)
引入
二項式反演又名廣義容斥定理
二項式反演可以表示成:
f[n]=∑i=0n(?1)iCnigi?gn=∑i=0n(?1)iCnif[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)iCni?gi??gn?=∑i=0n?(?1)iCni?f[i]
常用表達為:
f[n]=∑i=0nCnig[i]?g[n]=∑i=0n(?1)n?iCnif[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=0n?Cni?g[i]?g[n]=∑i=0n?(?1)n?iCni?f[i]
證明詳見:二項式反演理解與證明
應用
恰好和至多的轉換:
設f[i]f[i]f[i]表示恰好的方案數,g[i]g[i]g[i]表示至多的方案數,則有:g[n]=∑i=0nCni?f[i]g[n]=\sum_{i=0}^nC_{n}^i*f[i]g[n]=∑i=0n?Cni??f[i]
根據二項式反演有:
f[n]=∑i=0n(?1)n?i?Cni?gif[n]=\sum_{i=0}^n(-1)^{n-i}*C_{n}^i*g_if[n]=i=0∑n?(?1)n?i?Cni??gi?
gig_igi?可以在很短的時間內求出,再用g求f就得到答案
恰好和至少的轉換:
設f(i)表示恰好有i個的方案數,g(i)至少有i個的方案數f(i)表示恰好有i個的方案數,g(i)至少有i個的方案數f(i)表示恰好有i個的方案數,g(i)至少有i個的方案數
有式子:g(i)=∑x=inCxi?f(x)g(i)=\sum_{x=i}^{n}C_{x}^i*f(x)g(i)=∑x=in?Cxi??f(x)
根據二項式反演有:
f(i)=∑x=in(?1)x?i?Cxi?g(x)f(i)=\sum_{x=i}^n(-1)^{x-i}*C_{x}^i*g(x)f(i)=∑x=in?(?1)x?i?Cxi??g(x)
球染色問題:n個球,k個顏色,求滿足相鄰顏色不同,每種顏色至少出現一次的方案數
解決方案:如果忽略每種顏色至少出現一次的限制,那么方案數就是k(k?1)n?1k(k-1)^{n-1}k(k?1)n?1,就是一次安排顏色,除了第一次k個隨便放,之后每次都是只能選k-1個(因為要和上一個不同)
設fif_ifi?表示恰好使用i種顏色的方案數。gkg_kgk?表示n個球,用了k種顏色,不強制每種顏色必須出現的方案數。那么問題就是求fnf_nfn?
先將函數fff與ggg建立聯系
g[k]=k(k?1)n?1=∑i=0kCki?f[i]g[k]=k(k-1)^{n-1}=\sum_{i=0}^kC_{k}^i*f[i]g[k]=k(k?1)n?1=i=0∑k?Cki??f[i]
我們反演可得:
f[k]=∑i=0kCki?g[i]f[k]=\sum_{i=0}^{k}C_{k}^{i}*g[i]f[k]=∑i=0k?Cki??g[i]
f[k]=∑i=0kCki?(?1)k?i?g[i]f[k]=\sum_{i=0}^{k}C_{k}^i*(-1)^{k-i}*g[i]f[k]=∑i=0k?Cki??(?1)k?i?g[i]
例題:
hdu P1465:最不容易系列之一
luogu P4859 已經沒有什么好害怕的了
[NOI Online #2 T3]游戲
總結
以上是生活随笔為你收集整理的二项式反演(非详细)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山楂红糖水的作用有什么
- 下一篇: 横叉怎么快速下去