基础组合数学

基础组合数学

组合数

\[\binom{n}{m} = \frac{n ^ {\underline{m}}}{m!} \]

有关下降幂相关的前置知识见基础多项式

性质

加法恒等式:

\[\binom{n}{m} = \binom{n - 1}{m} + \binom{n - 1}{m - 1} \]

提取吸收恒等式:

\[\binom{n}{m} = \frac{n}{m} \binom{n - 1}{m - 1} \]

二项式定理

\[(a + b) ^ n = \sum_{k = 0} ^ \infty \binom{n}{k} a ^ {n - k} b ^ k \]

\(k \geq n\) 时,\(\binom{n}{k} = 0\),因此原式子同样可以改写为:

\[(a + b) ^ n = \sum_{k = 0} ^ n \binom{n}{k} a ^ {n - k} b ^ k \]

推论

\(a = 1, b = -1\) 时:

\[[n = 0] = \sum_{k = 0} ^ \infty (-1) ^ k \binom{n}{k} \]

\(a = b = 1\) 时:

\[2 ^ n = \sum_{k = 0} ^ \infty \binom{n}{k} \]

\(a = 1\) 时:

\[(1 + x) ^ n = \sum_{k = 0} ^ \infty \binom{n}{k} x ^ k \]

如果对上式的左式取倒数:

\[\frac{1}{(1 + x) ^ n} = \sum_{k = 0} ^ \infty \binom{k + n - 1}{n - 1} x ^ k \]

证明的方法可以参考普通生成函数(OGF)


如果把 \(n\) 推广到复数域就得到了牛顿二项式定理

\[(1 + x) ^ \alpha = \sum_{k = 0} ^ \infty \binom{\alpha}{k} x ^ k \quad (\alpha \in \mathbb{C}) \]

事实上,二项式定理就是牛顿二项式定理的一个特例。


范德蒙德卷积:

\[\binom{n + m}{c} = \sum_{k = 0} ^ c \binom{n}{k} \binom{m}{c - k} \]

容斥原理

\[\begin{aligned} f(S) = \sum_{T \subseteq S} g(T) &\Leftrightarrow g(S) = \sum_{T \subseteq S} (-1) ^ {|S| - |T|} f(T) \quad 子集容斥 \\ f(S) = \sum_{S \subseteq T} g(T) &\Leftrightarrow g(S) = \sum_{S \subseteq T} (-1) ^ {|T| - |S|} f(T) \quad 超集容斥 \end{aligned} \]

上述两种容斥是最一般形式的容斥原理。

二项式反演

二项式反演是容斥原理的特殊应用。

定义 \(f(x)\) 为选取恰好 \(x\) 个元素的方案数,\(g(x)\) 为选取不超过 \(x\) 个元素的方案数,则有:

\[\begin{aligned} g(n) &= \sum_{k = 0} ^ n \binom{n}{k} f(k) \\ \Leftrightarrow f(n) &= \sum_{k = 0} ^ n (-1) ^ {n - k} \binom{n}{i} g(k) \end{aligned} \]

另一种形式的二项式反演(标号颠倒):

\[\begin{aligned} g(n) &= \sum_{m \leq k \leq n} \binom{n - m}{k - m} f(k) \\ \Leftrightarrow f(n) &= \sum_{m \leq k \leq n} (-1) ^ {k - m} \binom{n - m}{k - m} g(k) \end{aligned} \]

例题

[yLOI2019] 青原樱

由题意得有 \(n - m\) 个空位,则花苗可以插入 \(n - m + 1\) 个位置,则答案为 \((n - m + 1) ^ {\underline{m}}\)

错位排列

错位排列指没有不动点的排列,即对于 \(1 \sim n\) 的排列 \(P\)

\[\forall i \in [1, n], P_i \neq i \]

则称 \(P\) 为一个 \(1 \sim n\)错位排列(\(\textbf{derangement}\)

错位排列数 \(D_n\) 满足如下的递推关系:

\[\begin{aligned} D_0 &= 1 \\ D_n &= (n - 1)(D_{n - 1} + D_{n - 2}) \\ D_n &= n D_{n - 1} + (-1) ^ n \end{aligned} \]

卡特兰数

卡特兰数是一个特殊的数列,例如:

  • 有长度为 \(2n\) 的序列 \(\{a\}\),包含 \(n\)\(+1\)\(n\)\(-1\),问有多少种排列方式,使得 \(\{a\}\) 的任意前缀和均非负。
  • \(n\) 个元素进栈序列为:\(1,2,3, \dots n\),问有多少种合法的出栈序列。
  • \(n\) 个节点能构成不同的二叉树个数。

卡特兰数 \(C_n\) 就是以上问题的答案关于 \(n\) 的生成数列。

递推公式

\[\begin{aligned} C_0 &= 1\\ C_n &= \binom{2n}{n} - \binom{2n}{n - 1} \\ \Rightarrow C_n &= \frac{\binom{2n}{n}}{n + 1} \\ \Rightarrow C_n &= \frac{4n - 2}{n + 1} C_{n - 1} \end{aligned} \]

例题

模板题 1
模板题 2

posted @ 2024-10-02 23:27  yiming564  阅读(15)  评论(0)    收藏  举报