容斥dp的数学基础

容斥dp的数学基础

本文不涉及:

  • 单位根反演
  • 生成函数
  • 集合幂级数
  • 微积分
  • 多项式计数

记号

  • 集合: [ n ] = [ 1 , n ] ∩ Z [n]=[1,n]\cap\mathbb{Z} [n]=[1,n]Z
  • 排列数: A n m = n m ‾ A^m_n=n^{\underline m} Anm=nm
  • 环排列数: Q n = ( n − 1 ) ! Q_n=(n-1)! Qn=(n1)!
  • 环排列数: Q n m = n ! m ( n − m ) ! Q_n^m=\frac{n!}{m(n-m)!} Qnm=m(nm)!n!
  • 组合数: C n m = ( n m ) C^m_n=\begin{pmatrix}n\\m\end{pmatrix} Cnm=(nm)
  • 无符号第一类斯特林数: [ n m ] \begin{bmatrix}n\\m\end{bmatrix} [nm]
  • 表示 n n n个有标号元素划分到 m m m个无标号非空环排列的方案数,也即 n n n元集合划分为 m m m个非空环排列的方案数。
  • 第二类斯特林数: { n m } \begin{Bmatrix}n\\m\end{Bmatrix} { nm}
    表示 n n n个有标号元素划分到 m m m个无标号非空集合的方案数,也即 n n n元集合划分为 m m m个非空子集的方案数。
  • 空集的补: i ∈ ∅ : i ‾ = U i\in\varnothing:\overline i=U i:i=U

对于超过定义范围的组合数、斯特林数等,均认为 0 0 0

和式的变换

容斥原理

  • 补集转换 : S = U − S ‾ 补集转换:S=U-\overline{ S} 补集转换:S=US
  • 德 ⋅ 摩根定律 : ⋃ n i = 1 S i ‾ = ⋂ n i = 1 S i ‾ , ⋂ n i = 1 S i ‾ = ⋃ n i = 1 S i ‾ 德·摩根定律:\overline{\underset{i=1}{\overset{n}{\bigcup}}S_i}=\underset{i=1}{\overset{n}{\bigcap}}\overline{S_i},\overline{\underset{i=1}{\overset{n}{\bigcap}}S_i }=\underset{i=1}{\overset{n}{\bigcup}}\overline{S_i} 摩根定律:i=1nSi=i=1nSi,i=1nSi=i=1nSi
  • 集合的并 : ∣ ⋃ n i = 1 S i ∣ = ∑ ∅ ≠ T ⊆ [ n ] ( − 1 ) ∣ T ∣ − 1 ∣ ⋂ i ∈ T S i ∣ 集合的并:\left|\underset{i=1}{\overset{n}{\bigcup}}S_i \right|={\underset{\varnothing\not=T\subseteq [n]}{\overset{}\sum}}(-1)^{|T|-1}\left |{\underset{i\in T}{\overset{}\bigcap}}S_i\right | 集合的并: i=1nSi ==T[n](1)T1 iTSi
    集合的并=集合的交的交错和(这里是奇加偶减),去掉模也成立。
  • 集合的交 : ∣ ⋂ n i = 1 S i ∣ = ∑ T ⊆ [ n ] ( − 1 ) ∣ T ∣ ∣ ⋂ i ∈ T S i ‾ ∣ 集合的交:\left| {\underset{i=1}{\overset{n}\bigcap}}S_i\right|={\underset{T\subseteq [n]}{\overset{}\sum}}(-1)^{|T|}\left|{\underset{i\in T}{\bigcap}\overline{S_i}}\right| 集合的交: i=1nSi =T[n](1)T iTSi
    集合的交=补集的交的交错和(这里是奇减偶加),去掉模也成立。

以上可归纳证明。

反演的本质

对于向量 F , G F,G F,G,有关系矩阵 H H H
F = H × G ⇔ G = H − 1 × F F=H\times G\Leftrightarrow G=H^{-1}\times F F=H×GG=H1×F

G → F G\rightarrow F GF称为变换,从 F ← G F\leftarrow G FG称为反演。

二项式反演

  • 二项式反演原理:
    ∑ n i = 0 ( n i ) ( − 1 ) n − i = ∑ n i = 0 ( n i ) ( − 1 ) i = [ n = 0 ] \underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}=\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{i}=[n=0] i=0n(ni)(1)ni=i=0n(ni)(1)i=[n=0]

备注,很明显这几个东西不成立
∑ n i = m ( n i ) ( − 1 ) n − i = [ n = m ] \underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}=[n=m] i=mn(ni)(1)ni=[n=m]
∑ m i = n ( i n ) ( − 1 ) i − n = [ n = m ] \underset{i=n}{\overset m\sum}\begin{pmatrix}i\\n\end{pmatrix}(-1)^{i-n}=[n=m] i=nm(in)(1)in=[n=m]

  • 二项式反演:
    f ( n ) = ∑ n i = m ( n i ) g ( i ) ⇔ g ( n ) = ∑ n i = m ( n i ) ( − 1 ) n − i f ( i ) f(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}f(i) f(n)=i=mn(ni)g(i)g(n)=i=mn(ni)(1)nif(i)
    f ( n ) = ∑ m i = n ( i n ) g ( i ) ⇔ g ( n ) = ∑ m i = n ( i n ) ( − 1 ) i − n f ( i ) f(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=n}{\overset{m}\sum}\begin{pmatrix}i\\ n\end{pmatrix}(-1)^{i-n}f(i) f(n)=i=nm(in)g(i)g(n)=i=nm(in)(1)inf(i)

∑ n i = 0 ( n i ) ( − 1 ) n − i = ∑ n i = 0 ( n i ) ( − 1 ) i = [ n = 0 ] \underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}=\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{i}=[n=0] i=0n(ni)(1)ni=i=0n(ni)(1)i=[n=0]
证明:
我们有二项式定理: ( 1 − 1 ) n = ∑ n i = 0 ( n i ) ( − 1 ) n − i (1-1)^n=\underset{i=0}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i} (11)n=i=0n(ni)(1)ni
QED.

f ( n ) = ∑ n i = m ( n i ) g ( i ) ⇔ g ( n ) = ∑ n i = m ( n i ) ( − 1 ) n − i f ( i ) f(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}g(i)\Leftrightarrow g(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}f(i) f(n)=i=mn(ni)g(i)g(n)=i=mn(ni)(1)nif(i)
证明:
只证明从左推右,反向同理:
g ( n ) = ∑ n i = m ( n i ) ( − 1 ) n − i f ( i ) g(n)=\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}f(i) g(n)=i=mn(ni)(1)nif(i)
反演一般的思路都考虑将 f ( i ) f(i) f(i)定义带入:
= ∑ n i = m ( n i ) ( − 1 ) n − i ∑ i j = m ( i j ) g ( j ) =\underset{i=m}{\overset{n}\sum}\begin{pmatrix}n\\ i\end{pmatrix}(-1)^{n-i}\underset{j=m}{\overset{i}\sum}\begin{pmatrix}i\\ j\end{pmatrix}g(j) =i=mn(ni)(1)nij=mi

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值