容斥和反演就是一个东西。
朴素容斥原理
|A1¯¯¯¯∩A2¯¯¯¯∩...∩An¯¯¯¯|=∑i=1N(−1)n−i∑|T|=i,T={x1,..,xi}|Ax1∩Ax2∩...∩Axi|
直接枚举所有子集计算。
例题: BZOJ4455
容斥的本质
坑待填。
反演的本质
就是有两个式子。
Gn=∑i=0nan,iFi
Fn=∑i=0nbn,iGi
把下式带入上式:
Gn=∑i=0nan,i∑j=0ibi,jGj
Gn=∑j=0nGj∑i=jnan,ibi,j
如果满足 ∑nj=ian,jbj,i=[n=i] ,那么这两个式子就可互相反演啦!
二项式反演
Gn=∑i=0n(ni)Fi⟺Gn=∑i=0n(−1)n−i(ni)Fi
它的本质就是:
∑j=in(nj)(−1)j−i(ji)=[n=i]
∑j=in(−1)j−i(ni)(n−ij−i)=[n=i]
用 d 替换
(ni)∑d=0n−i(−1)d(n−id)=[n=i]
(ni)[n−i=0]=[n=i]
得证。
例题: BZOJ3622
Stirling反演
把第一类Stirling数看成有符号的。
Gn=∑i=0n{ni}Fi⟺Fn=∑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|ngd⟺gn=∑d|nμndfd
fn=∑i=1n[i|n]gi⟺gn=∑i=1n[i|n]μnifi
本质就是:
∑j=in[j|n][i|j]μji=[n=i]
用 d 替换
∑d=1ni[d|ni]=[ni=1]
得证。
最值反演
又叫min-max容斥,感觉很神奇,其实很sb。
max{S}=∑T⊆S(−1)|T|−1min{T}
设最大值为 x∈S ,那么构造映射 f(T)→x∈T?T−x:T+x 。那么当 T 不为空和
套上期望还是蛮有用的: HDU4624
后记
听说把组合数和stirling数根据递推式往负方向推可以推出与之对偶的东西。。。