容斥与反演总结

容斥和反演就是一个东西。

朴素容斥原理

|A1¯¯¯¯A2¯¯¯¯...An¯¯¯¯|=i=1N(1)ni|T|=i,T={x1,..,xi}|Ax1Ax2...Axi|

直接枚举所有子集计算。
例题: BZOJ4455

容斥的本质

坑待填。

反演的本质

就是有两个式子。

Gn=i=0nan,iFi

Fn=i=0nbn,iGi

把下式带入上式:
Gn=i=0nan,ij=0ibi,jGj

Gn=j=0nGji=jnan,ibi,j

如果满足 nj=ian,jbj,i=[n=i] ,那么这两个式子就可互相反演啦!

二项式反演

Gn=i=0n(ni)FiGn=i=0n(1)ni(ni)Fi

它的本质就是:
j=in(nj)(1)ji(ji)=[n=i]

j=in(1)ji(ni)(niji)=[n=i]

d 替换 ji
(ni)d=0ni(1)d(nid)=[n=i]

(ni)[ni=0]=[n=i]

得证。
例题: BZOJ3622

Stirling反演

把第一类Stirling数看成有符号的。

Gn=i=0n{ni}FiFn=i=0n[ni]Gi

本质就是:
j=in{nj} [ji]=[n=i]

第一类Stirling数幂与下降幂的关系:
xk=i=0k[ki]xi

第二类Stirling数幂与下降幂的关系:
xk=i=0k{ki}xi

代入就好。
例题: BZOJ4617, Wearry出的神题

莫比乌斯反演

fn=d|ngdgn=d|nμndfd

fn=i=1n[i|n]gign=i=1n[i|n]μnifi

本质就是:

j=in[j|n][i|j]μji=[n=i]

d 替换 ji
d=1ni[d|ni]=[ni=1]

得证。

最值反演

又叫min-max容斥,感觉很神奇,其实很sb。

max{S}=TS(1)|T|1min{T}

设最大值为 xS ,那么构造映射 f(T)xT?Tx:T+x 。那么当 T 不为空和 {x} 时, T f(T) 因为只相差一个最大值,最小值肯定相同,集合大小只相差 1 ,就抵消了,因为空集没有最小值,所以最后只剩下 {x} 的贡献。
套上期望还是蛮有用的: HDU4624

后记

听说把组合数和stirling数根据递推式往负方向推可以推出与之对偶的东西。。。

你可能感兴趣的:(数论,组合数学,容斥原理,莫比乌斯反演,二项式反演)