组合数学学习笔记
注:本文仅供个人参考用。
组合数递推公式:
\[
{n \choose m}={{n-1} \choose {m-1}}+{{n-1} \choose m}
\]
组合数恒等式:
\[
{n \choose m}={n \choose n-m}
\]
\[
\sum_{i=0}^n {n \choose i}=2^n
\]
范德蒙卷积:
\[
\sum_{i=0}^k {n \choose i}{m \choose k-i}={n+m \choose k}
\]
有用的:
\[
{n \choose i}{i \choose j}={n-j \choose n-i}{n \choose j}
\]
\[
\sum_{i=0}^n {i \choose j}={n+1 \choose j+1}
\]
可重集排列:若有 $ n $ 个元素,它们去重后有 $ k $ 个元素,并且值为 $ a_i $,那么将它们排列的方案数为
\[
\frac{n!}{\prod_{i=1}^k a_i}
\]
可重集组合:若有 $ k $ 种物品,每种物品有无穷个,那么从中选出 $ n $ 个物品的方案数为:
\[
{n+k-1 \choose k-1}={n+k-1 \choose n}
\]
$ n $ 个互不相同的数的选出 $ m $ 个数所构成的圆排列个数为:
\[
\frac{A_n^m}{m}={n \choose m}(m-1)!
\]
$ n $ 个点二叉树右儿子个数为 $ i $ 的方案数为(根节点也算右儿子):
\[
\frac{1}{i}{n \choose {i-1}}{{n-1} \choose {i-1}}
\]
二项式定理:
\[
(a+b)^n=\sum_{i=0}^n {n \choose i} a_i b_{n-i}
\]
容斥原理(二项式反演,应用时 $ f $ 或 $ g $ 数组应该会很好求):
如果
\[
f_n=\sum_{i=0}^n {n \choose i} g_i
\]
那么有
\[
g_n=\sum_{i=0}^n (-1)^{n-i} {n \choose i} f_i
\]
\(\text{Lucas}\) 定理,若 $ p $ 为质数,那么有:
\[
{n \choose m} mod \ p={n/p \choose m/p} \times {n \ mod \ p \choose m \ mod \ p } mod \ p
\]
卡特兰数公式(\(1,2,5,14,42,132\)):
\[
C_n={2n \choose n} - {2n \choose n-1}
\]
或
\[
C_n = {{2n \choose n} \over {n+1}}
\]
第一类斯特林数(\({n \brack m}\) 表示把 $ n $ 个互不相同的元素划分成 $ m $ 个圆的方案数):
\[
{n \brack m}={n-1 \brack m-1} + (n-1) \times {n-1 \brack m}
\]
\[
n!=\sum_{i=0}^n {n \brack i}
\]
下降幂,上升幂:
\[
x^{\underline{n}}=\sum_{i=0}^n {n \brack i} (-1)^{n-i} x^i
\]
\[
x^{\overline{n}}=\sum_{i=0}^n {n \brack i}x^i
\]
第二类斯特林数($ {n \brace m} $ 表示把 $ n $ 个互不相同的元素放进 $ m $ 个相同盒子的方案数):
\[
{n \brace m}={n-1 \brace m-1} + m \times {n-1 \brace m}
\]
自然数幂:
\[
m^n=\sum_{i=0}^{\min(n,m)} {n \brace i} {m \choose i} i!=\sum_{i=0}^{\min(n,m)} {n \brace i} m^{\underline{i}}
\]
自然数幂和( $ n \leq 10^9,k \leq 5000$ ):
\[
\sum_{i=1}^n i^k = \sum_{i=1}^n \sum_{j=0}^k {k \brace j}j!{i \choose j} \\ =\sum_{j=0}^k {k \brace j}j!\sum_{i=1}^n{i \choose j} \\ =\sum_{j=0}^k {k \brace j}j!{n+1 \choose j+1}
\]
\(\text{CF932F}\) ( $ n \leq 10^9,k \leq 5000$ ):
\[
\sum_{i=1}^n {n \choose i} i^k=\sum_{i=1}^n {n \choose i}\sum_{j=0}^k {k \brace j}j!{i \choose j} \\ =\sum_{j=0}^k {k \brace j} j!\sum_{i=1}^n{n \choose i}{i \choose j} \\ =\sum_{j=0}^k {k \brace j}j! \sum_{i=1}^n {n-j \choose n-i}{n \choose j} \\ =\sum_{j=0}^k {k \brace j}n^{\underline{j}} 2^{n-j}
\]
像2020联合省选A卷还有把多项式拆成下降幂的套路吧。。。
未完待续\(\dots\)