组合数学学习笔记(ljt讲课)

排列数(又称下降阶乘幂)

n m = n ( n 1 ) ( n 2 ) . . . . ( n m + 1 ) = A n m n^{\underline m} = n(n-1)(n-2)....(n-m+1)=A_n^m

下降幂的差分

下降幂的差分具有良好的性质
Δ n k = ( n + 1 ) k n k = k n k 1 \Delta n^{\underline k}=(n+1)^{\underline k} - n^k=k*n^{\underline {k-1}} (展开合并即可)
前缀和是查分的逆运算也具有良好的性质:
i k = 0 i < n i k = 1 k + 1 n k + 1 \sum i^{\underline k} = \sum_{0\le i <n } i^{\underline k} = \frac{1}{k+1} n^{\underline {k+1}}

证明:
①:转换到组合意义
0 i < n i k = 0 i < n A i k = 1 k ! 0 i < n ( i k ) = 1 k ! C n k + 1 = 1 k ! n ! ( k + 1 ) ! ( n k 1 ) ! = 1 k + 1 n ! n j 1 ! = 1 k + 1 A n k + 1 = 1 k + 1 n k + 1 \sum_{0 \le i<n} i^{\underline k} = \sum_{0 \le i<n} A_i^k = \frac{1}{k!} \sum_{0 \le i<n} {i \choose k} \\ =\frac{1}{k!} *C_{n}^{k+1}=\frac{1}{k!}*\frac{n!}{(k+1)!(n-k-1)!}\\ =\frac{1}{k+1}*\frac{n!}{n-j-1!}=\frac{1}{k+1}A_n^{k+1} =\frac{1}{k+1}n^{\underline {k+1}}
②:直接通过下降幂的查分
n k + 1 = i = 0 n 1 Δ i k = ( k + 1 ) i = 0 n 1 i k i = 0 n 1 i k = 1 k + 1 n k + 1 n^{\underline {k+1}} = \sum_{i=0}^{n-1}\Delta i^{\underline k}=(k+1)\sum_{i=0}^{n-1}i^{\underline k}\\ \Rightarrow \sum_{i=0}^{n-1}i^{\underline k}=\frac{1}{k+1}n^{\underline{k+1}}

牛顿二项式定理

( 1 + z ) r = k ( r k ) z k (1+z)^r=\sum_{k} {r \choose k} z^k

常见的组合数恒等式

吸收/提取恒等式:
( n m ) = n m ( n 1 m 1 ) m ( n m ) = n ( n 1 m 1 ) {n\choose m}=\frac{n}{m}{n-1\choose m-1}\Rightarrow m{n \choose m} = n{n-1 \choose m-1}
证明显然

翻转上指标恒等式:
( n m ) = ( 1 ) m ( m n 1 m ) {n\choose m} = (-1)^m{m-n-1 \choose m}
证明:展开后将分子取反即可

三项式版恒等式:
( n m ) ( m k ) = ( n k ) ( n k m k ) {n\choose m}{m \choose k} = {n\choose k}{n-k \choose m-k}
证明:考虑组合意义

平行求和:
k n ( r + k k ) = ( r + n + 1 n ) \sum_{k\le n}{r+k \choose k} = {r+n+1 \choose n}
将第一项变换后两两合并即可

上指标求和:
k n ( k m ) = ( n + 1 m + 1 ) \sum_{k\le n} {k \choose m} = {n+1 \choose m+1}
证明:考虑组合意义
n + 1 n+1 个球挑出 m + 1 m+1 个球, ( k m ) {k\choose m} 表示最大标号为k的方案数,即可推得

范德蒙德卷积恒等式
k ( r k ) ( s n k ) = ( r + s n ) \sum_k{r\choose k}{s\choose n-k}={r+s\choose n}
证明:考虑组合意义
两个大小分别为 r r s s 的集合,总共要挑出 n n 个元素

容斥原理

基于恒等式:
k = 0 ( 1 ) k ( n k ) = [ n = = 0 ] \sum_{k=0} (-1)^k{n\choose k}=[n==0]
简单变形:
k 1 ( 1 ) k ( n k ) = [ n > 0 ] \sum_{k\ge 1}(-1)^{k}{n\choose k}=[n>0]
一般情形:
i I A i = α I ( 1 ) α + 1 i α A i \left| \bigcup_{i∈I} A_i \right| = \sum_{\alpha \subseteq I}(-1)^{|\alpha+1|} \left| \bigcap_{i∈\alpha} A_i \right|
证明:考虑每个元素的出现集合 S x = { i x A i } S_x=\{i|x∈A_i\} ,那么原式等价求 x [ S x > 0 ] \sum_x[S_x>0]
考虑 x x 被算了几次
,对于 S x S_x 的任何一个子集 s s x x 都被加上了 ( 1 ) s + 1 (-1)^{|s|+1} 的贡献,故x被计算的次数为 k 1 ( 1 ) k + 1 ( S x k ) = [ S x > 0 ] \sum_{k\ge 1}(-1)^{k+1} { |S_x| \choose k }=[|S_x|>0]

容斥原理的另一种形式:
i A i = α I ( 1 ) α i α A i \left| \bigcap_i \overline A_i \right|=\sum_{\alpha ∈I}(-1)^{\alpha}\left| \bigcap_{i∈\alpha} A_i \right|
前半部分显然是求并集的补集,只要在对原来的式子取反即可

min-max容斥

m a x ( S ) max(S) 为集合 S S 中最大的元素的值
m i n ( S ) min(S) 为集合 S S 中最小的元素的值
m a x ( S ) = A S A ϕ ( 1 ) A 1 m i n ( A ) max(S)=\sum_{A\subseteq S且A≠\phi} (-1)^{|A|-1}min(A)
证明:
S x S_x 为比 x x 元素大的元素集合
x x 的贡献为:
k ( S x k ) ( 1 ) k = [ S x = ϕ ] \sum_k{|S_x| \choose k}(-1)^k=[|S_x|=\phi]

拓展形式: l c m ( S ) = A S A ϕ ( 1 ) A 1 g c d ( A ) lcm(S)=\sum_{A\subseteq S且A≠\phi} (-1)^{|A|-1}gcd(A)

二项式反演

g ( n ) = k ( 1 ) k ( n k ) f ( k ) f ( n ) = k ( 1 ) k ( n k ) g ( k ) g ( n ) = k ( n k ) f ( k ) f ( n ) = k ( 1 ) n k ( n k ) g ( k ) g(n)=\sum_k (-1)^k{n\choose k}f(k)\Leftrightarrow f(n)=\sum_k(-1)^k{n\choose k}g(k)\\ g(n)=\sum_k{n\choose k}f(k)\Leftrightarrow f(n)=\sum_k (-1)^{n-k}{n\choose k}g(k)
证明:
首先对于①式
k ( 1 ) k ( n k ) j ( 1 ) j ( k j ) g ( j ) = j ( 1 ) j k ( 1 ) k ( n k ) ( k j ) = j ( 1 ) j k ( 1 ) k ( n j ) ( n j k j ) = j ( n j ) g ( j ) k ( 1 ) k ( n j k ) = j ( n j ) g ( j ) [ n = j ] = g ( n ) \sum_k (-1)^k {n\choose k} \sum_j(-1)^j{k\choose j} g(j)\\ = \sum_j (-1)^j \sum_k (-1)^k {n\choose k}{k\choose j}\\ = \sum_j (-1)^j \sum_k (-1)^k {n\choose j}{n-j\choose k-j}\\ = \sum_j {n\choose j}g(j) \sum_k (-1)^{k} {n-j\choose k}\\ = \sum_j {n\choose j}g(j) [ n = j ]\\ = g(n)
二式同理

我们考虑从母函数的角度去证明这个式子:
g ( n ) = k ( 1 ) k ( n k ) f ( k ) g ( n ) = k ( 1 ) k n ! ( n k ) ! k ! f ( k ) g ( n ) n ! = k ( 1 ) k f ( k ) k ! 1 ( n k ) ! ( n ( 1 ) n f ( n ) n ! z n ) × ( n 1 n ! z n ) G e ( z ) = F e ( z ) e z G e ( z ) e z = F e ( z ) F e ( z ) = G e ( z ) e z f ( n ) / n ! = k ( 1 ) k g ( k ) k ! × 1 ( n k ) ! f ( n ) = k ( 1 ) k ( n k ) g ( k ) g(n) = \sum_k (-1)^k {n\choose k} f(k) \\ g(n) = \sum_k (-1)^k \frac{n!}{(n-k)!k!} f(k)\\ \frac{g(n)}{n!}=\sum_k(-1)^k \frac{f(k)}{k!} \frac{1}{(n-k)!}\\ \left(\sum_n (-1)^n \frac{f(n)}{n!} z^n\right) \times \left(\sum_n \frac{1}{n!} z^n\right)\\ G_e(z) = F_e(-z) e^z\\ G_e(z) e^{-z} = F_e(-z)\\ F_e(z) = G_e(-z) e^{z}\\ f(n)/n! = \sum_k (-1)^k\frac{g(k)}{k!}\times \frac{1}{(n-k)!}\\ f(n) = \sum_k(-1)^k{n\choose k}g(k)
第二个式子更简单:
g ( n ) = k ( n k ) f ( k )       f ( n ) = k ( n k ) ( 1 ) n k g ( k ) g ( n ) n ! = k f ( k ) k ! 1 ( n k ) ! G ( z ) = F ( z ) e z F ( z ) = G ( z ) e z f ( n ) = k g ( k ) ( 1 ) n k ( n k ) ! g(n) = \sum_k{n\choose k}f(k) \iff f(n) = \sum_k{n\choose k}(-1)^{n-k}g(k)\\ \frac{g(n)}{n!} = \sum_k \frac{f(k)}{k!} \frac{1}{(n-k)!}\\ G(z)=F(z)e^z \Rightarrow F(z)=G(z)e^{-z} \\ f(n) = \sum_kg(k)\frac{(-1)^{n-k}}{(n-k)!}

卡特兰数

多的就不讲了,讲一下通项推导 https://blog.csdn.net/a1035719430/article/details/85078446

广义容斥原理

α \alpha 是指标集,设 f ( α ) f(\alpha) 表示不被 i α A i \bigcup_{i∈\alpha}A_i 且被 i α A i \bigcap_{i\notin \alpha}A_i 包含的元素个数, g ( α ) g(\alpha) 表示不被 i α \bigcup_{i\in\alpha} 包含的元素个数
则有递推关系:
f ( α ) = g ( α ) α γ , α γ f ( γ ) f(\alpha)=g(\alpha)-\sum_{\alpha \subseteq \gamma ,\alpha ≠\gamma}f(\gamma)

很多问题要求恰好在 k k 个集合中的元素个数(恰好满足 k k 个性质)
设其为 f ( k ) f(k) ,同时设 g ( k ) g(k) 表示至少在 k k 个集合的方案数,先然后
f ( i ) = g ( i ) k > i ( k i ) f ( k ) f(i)=g(i)-\sum_{k>i}{k\choose i}f(k)
例题:bzoj3622
传送门:https://blog.csdn.net/a1035719430/article/details/84955309

广义容斥的优秀做法

广义容斥还有 O ( n l o g n ) O(nlogn) 的解法
g ( i ) = k ( k i ) f ( k ) = k k ! f ( k ) i ! ( k i ) ! i ! g ( i ) = k k ! f ( k ) ( k i ) ! g(i)=\sum_{k}{k\choose i}f(k)=\sum_k \frac{k!f(k)}{i!(k-i)!}\\ \Rightarrow i!g(i)=\sum_k \frac{k!f(k)}{(k-i)!}
G ( i ) = ( N i ) ! g ( N i ) , F ( i ) = ( N i ) ! f ( N i ) ! G(i)=(N-i)!g(N-i),F(i)=(N-i)!f(N-i)!

猜你喜欢

转载自blog.csdn.net/a1035719430/article/details/84945249