0%

常用组合数

包括组合数、卡特兰数、第一二类斯特林数等。

组合数

\[ \begin{align} \binom{n}{m}&=\frac{n!}{(n-m)!m!}\\ \binom{n}{m}&=\binom{n-1}{m}+\binom{n-1}{m-1} \end{align} \]

插板法

\(n\) 个相同物品分为 \(k\) 组(非空)的方案数。

对于 \(n\) 个点,相邻两个有一个槽,插入 \(k-1\) 个板,也就分成了 \(k\) 组。

所以答案为 \(\displaystyle \binom{n-1}{k-1}\)

多重集的组合数

\(n\) 个数中选出 \(k\) 个数组成多重集的方案数。

等价于解 \(x_1+x_2+x_3+\cdots +x_n=k\) 的非负整数解个数。

答案: \[ \binom{n+k-1}{k-1} \] 插板法:在原来的 \(n-1\) 个槽基础上再加 \(k\) 个槽,被选则表示该组为空。

卡特兰数

详见OI Wiki

\(H_0\) \(H_1\) \(H_2\) \(H_3\) \(H_4\) \(H_5\) \(H_6\) ...
1 1 2 5 14 42 132 ...

常用公式:

\[ \begin{align} H_n&=\frac{1}{n+1}\dbinom{2n}{n} \\ H_n&=\dbinom{2n}{n}-\dbinom{2n}{n-1} \\ H_n&=\begin{cases} \sum_{i=1}^{n}H_{i-1}H_{n-i} &n\ge2,n\in\mathbb{N_{+}}\\ 1 &n=0,1 \end{cases} \\ H_n&=\frac{4n-2}{n+1}H_{n-1}\\ \end{align} \]

应用

\(H_n\)

  1. 表示由 \(n\) 个节点组成不同构二叉树的方案数。

  2. 表示有 \(2n+1\) 个节点组成不同构满二叉树的方案数。

  3. 表示通过连接顶点将 \((n+2)\) 边的凸多边形分成三角形的方法个数。

  4. 表示在 \(n\times n\) 的网格图中不越过对角线的路径条数。

  5. 表示长度为 \(2n\)\(\texttt{dyck word}\) 个数(有 \(n\) 个"X"与 \(n\) 个"Y"组成的字符串,满足前缀“X”的个数大于等于前缀“Y”的个数)。

第一类斯特林数

表示将 \(n\) 个两两不同的元素,划分为 \(k\) 个非空圆排列的方案数。 \[ \begin{bmatrix}n\\k\end{bmatrix}=\begin{bmatrix}n-1\\k-1\end{bmatrix}+(n-1)\begin{bmatrix}n-1\\k\end{bmatrix} \] 边界 \(\displaystyle \begin{bmatrix}n\\0\end{bmatrix}=[n=0]\)

第二类斯特林数

表示将 \(n\) 个两两不同的元素,划分为 \(k\) 个非空子集的方案数。 \[ \begin{Bmatrix}n\\k\end{Bmatrix}=\begin{Bmatrix}n-1\\k-1\end{Bmatrix}+k\begin{Bmatrix}n-1\\k\end{Bmatrix} \] 边界 \(\displaystyle \begin{Bmatrix}n\\0\end{Bmatrix}=[n=0]\)