boxmoe_header_banner_img

Hello! 欢迎来到DRheEheAM的blog!

加载中

文章导读

Jul 31st 暑假集训总结 | 组合数学-容斥原理&二项式反演


avatar
DRheEheAM_Garylv229憨毛怪 2026-07-31 45

AI Summary

这篇集训总结介绍了容斥原理和二项式反演,并通过“Sky Full of Stars”例题展示其应用与公式推导。

基础知识

容斥原理

左转这篇文章~

二项式反演

已知 f(x)f(x) 表示恰好使用 xx 个不同元素形成特定结构的方案数,g(x)g(x) 表示从 xx 个元素中选出 i0i\ge0 个元素形成特定结构的方案数。显然有:

g(x)=i=0nCnif(i)g(x)=\sum_{i=0}^{n}C_n^if(i)

若已知 f(x)f(x) ,则:

f(x)=i=0nCni(1)nig(i)f(x)=\sum_{i=0}^{n}C_n^i(-1)^{n-i}g(i)

通过 g(x)g(x)f(x)f(x) 的过程就被称为二项式反演

题单链接 ZR 2026 Summer C 7.31

Sky Full of Stars (CodeForces-997C/洛谷-CF997C)

我们设 f(i,j)f(i,j) 表示至少 iijj 列颜色相同的方案数,根据容斥原理,总方案数:

r=i=0nj=0nCniCnj(1)i+j+1f(i,j)r=\sum_{i=0}^n\sum_{j=0}^nC_n^iC_n^j(-1)^{i+j+1}f(i,j)

考虑 i=0i=0 的情况,容易发现,染色的每列共有 33 种选择,则总共 3j3^j 种选择,未染色列每个格子都有 33 种选择,共有 3n(nj)3^{n(n-j)} 种情况。总计 3n2nj+j3^{n^2-nj+j} 种情况。j=0j=0 同理。

考虑 ij0ij\ne0 的情况,发现所有染色行列因为互相制约,只有 33 种可能。其余未染色格子各有 33 种选择,共有 3(ni)(nj)3^{(n-i)(n-j)} 种可能,总计 3n2ninj+13^{n^2-ni-nj+1} 种可能。

我们拆出 ij=0ij=0 的情况,总共:

2i=0nCni(1)i+13n2nj+j2\sum_{i=0}^nC_n^i(-1)^{i+1}3^{n^2-nj+j}

那么 ij0ij\ne0 的情况总共:

i=1nj=1nCniCnj(1)i+j+13n2ninj+ij\sum_{i=1}^n\sum_{j=1}^nC_n^iC_n^j(-1)^{i+j+1}3^{n^2-ni-nj+ij}

种可能。拆项整理,提公因式,得到:

3n2i=1nCni(1)i3nij=1nCnj(1)j3nj+ij-3^{n^2}\sum_{i=1}^nC_n^i(-1)^i3^{-ni}\sum_{j=1}^nC_n^j(-1)^j3^{-nj+ij}

变形:

3n2i=1nCni(1)i3nij=1nCnj(3n+i)j-3^{n^2}\sum_{i=1}^nC_n^i(-1)^i3^{-ni}\sum_{j=1}^nC_n^j(-3^{-n+i})^j

注意到二项式定理:

(a+b)n=j=0nCnjajbnj(a+b)^n=\sum_{j=0}^nC_n^ja^jb^{n-j}

所以代入 a=3n+i , b=1a=-3^{-n+i}\ ,\ b=1,得到:

(13n+i)n=j=0nCnj(3n+i)j(1-3^{-n+i})^n=\sum_{j=0}^nC_n^j(-3^{-n+i})^j

发现原式从 11 开始枚举,所以我们减去一个 11 代回原式得到:

3n2i=1nCni(1)i3ni[(13n+i)n1]-3^{n^2}\sum_{i=1}^nC_n^i(-1)^i3^{-ni}[(1-3^{-n+i})^n-1]

预处理 Cni ,3i ,3niC_n^i\ , 3^i\ ,3^{ni} 可以做到常数较小的 O(nlog2n)O(n\log_2n) ,注意取模和逆元。



评论(0)

查看评论列表

暂无评论


发表评论

DRheEheAM_Gary Blog