# 组合数学学习笔记

# 排列

  1. 不可重排列数

nn 个不同的物品选出 mm 个的排列数:Anm=n!(nm)!(n,mN,mn)A_n^m = \frac{n!}{(n-m)!} \quad (n,m \in N^{*}, m \le n).

  1. 可重排列数

nn 种物品选出 kk 个的排列数:nkn^k.

  1. 圆排列

nn 个不同的物品选出 mm 个围成一个圆的排列数:Pnm=Anmm=n!m(nm)!P_n^m = \frac{A_n^m}{m} = \frac{n!}{m \cdot (n-m)!}.

  1. 不尽相异元素全排列

mm 种物品共计 nn 件,第 ii 种物品有 aia_i 件,其全排列:n!i=1m(ai!)\frac{n!}{\prod\limits_{i = 1}^{m} {(a_i!)}}.

  1. 多重集的排列

在多重集中选 nn 件物品的排列数:n!n! 除以指数型生成函数(指数型母函数)的 nn 次项的系数。

# 组合

  1. 不可重组合数

nn 个不同的物品选出 mm 个的组合数:Cnm=n!m!(nm)!C_n^m = \frac{n!}{m!(n-m)!}.

  1. 可重组合数

nn 中不同的物品选出 mm 个的组合数:Cn+m1n1=Cn+m1mC_{n+m-1}^{n-1} = C_{n+m-1}^{m}.

  1. 不相邻的组合数

nn 个物品中选出 mm 个不相邻的物品的方案数:Cnm+1mC_{n-m+1}^{m}.

  1. 多重集的组合

在多重集中选 nn 件物品的组合数:普通型生成函数(普通型母函数)的 nn 次项系数。

  1. 组合数常用公式

Cnm=CnnmC_{n}^{m} = C_{n}^{n-m}
Cnm=Cn1m+Cn1m1C_{n}^{m} = C_{n-1}^{m} + C_{n-1}^{m-1}
Cnm+1=Cnmnmm+1C_{n}^{m+1} = C_{n}^{m} \cdot {\frac{n-m}{m+1}}

  1. Lucas 定理

C(n,m) % p=C(np, mp)  C(n%p, m%p) % pC(n, m) ~\%~ p = C(\lfloor\frac{n}{p}\rfloor,~\lfloor\frac{m}{p}\rfloor) ~\ast~ C(n \%p,~ m\%p) ~\%~ p

# 公式 及 定理

  1. 二项式定理

(x+y)n=i=0n(ni)xiyni(x+y)^n = \sum\limits_{i = 0}^n \binom{n}{i}{x^i} {y^{n-i}}

  1. 常见恒等式

i=0n(ni)=2n\sum\limits_{i = 0}^{n} \binom{n}{i} = 2^n
i=0n(1)i(ni)=0\sum\limits_{i = 0}^{n} (-1)^i \binom{n}{i} = 0
i=0n2i(ni)=3n\sum\limits_{i = 0}^{n} 2^i \binom{n}{i} = 3^n

  1. 帕斯卡恒等式

Cn+1k=Cnk1+CnkC_{n+1}^k = C_n^{k-1} + C_n^k

  1. Lucas 定理推论

CnmC_n^m 为奇数 \Longleftrightarrow n&m=mn\&m = m

  1. 错排问题

Dn=(n1)(Dn1+Dn2)(D1=0,D2=1)D_n = (n-1)(D_{n-1} + D_{n-2}) \quad (D_1 = 0, D_2 = 1)
Dn=n!i=2n(1)i1i!D_n = n!\sum\limits_{i = 2}^{n} (-1)^i \frac{1}{i!}
Dn=n!e+0.5D_n = \lfloor\frac{n!}{e} + 0.5\rfloor

# 常见数列

# 斐波那契数列

  1. 定义

FnF_n = Fn1+Fn2(F1=1,F2=1)F_{n-1} + F_{n-2} \quad (F_1 = 1, F_2 = 1)

  1. 通项公式

fn=15[(1+52)n(152)n]f_n = \frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]

  1. 性质

平方与前后项:从第二项开始,每个奇数项的平方都比前后两项之积少 1,每个偶数项的平方都比前后两项之积多 1
nn 项的前缀和:S(n)=fn+21\operatorname{S}(n) = f_{n+2}-1
奇数项求和:i=1nf2n1=f2n\sum\limits_{i = 1} ^{n} f_{2n-1} = f_{2n}
偶数项求和:i=1nf2n=f2n+11\sum\limits_{i = 1} ^{n} f_{2n} = f_{2n+1}-1
平方求和:i=1nfn2=fnfn+1\sum\limits_{i = 1} ^{n} f_{n}^2 = f_{n} \cdot {f_{n+1}}

# 卡特兰数

  1. 公式

h(n)=C(2n,n)n+1=C2nnC2nn1h(n) = \frac{C(2n,\, n)}{n+1} = C_{2n}^n - C_{2n}^{n-1}
h(n+1)=i=0nh(i)h(ni)(h(0)=1)h(n+1) = \sum\limits_{i = 0}^{n}h(i) \cdot h(n-i) \quad (h(0) = 1)
h(n+1)=4n+2n+2h(n)h(n+1) = \frac{4n+2}{n+2} \cdot h(n)

  1. 应用

nn 个数的出栈序列数。
nn 个结点的二叉树的种类数。
n+1n+1 个叶节点的满二叉树的个数。
nnn \ast n 的格子的下三角走,每次向右或上走一格,走到右上角的方案数。
将凸多边形分割为三角形的方案数。
在圆上选 2n2n 个点,是两两相连得到的 nn 条线段不相交的方案数。
左右括号各有 nn 个,组成的合法括号表达式的方案数。
. . . . . .

# 例题

组合数学的思想及实际应用更为重要

# P6475 [NOI Online #2 入门组] 建设城市

# 题目描述

(Building.)
要在灵水市建造 2n2n 座并排的高楼 ,高度不可超过 mm,前 nn 座不下降,后 nn 座不上升,指定编号为 xxyy 的两栋高楼作为地标并使其高度相等,询问方案对 998244353998244353 取模后的结果(楼高是正整数)。

# Solution of The Problem

我们需要分类讨论,将地标建筑在 nn 的同侧与异侧分开考虑。
若在同侧,两地标及其中间建筑高度均相同,灵水市被分成 33 个区间段, [1,x)[1, x), (y,n](y, n], [n+1,2n][n+1, 2n], 枚举地标高度,计算贡献。
若在异侧,灵水市就被分成了 44 部分, [1,x)[1, x)(x,n](x, n][n+1y)[n+1,y)(y,2n](y, 2n],同样的枚举地标高度,计算贡献。
nn 座高楼的高度选择有 mm 种,建造的方案数等同于 nn 个相同的小球放入 mm 个不同的盒子里,盒子可空。
(Construction Complete)
(New Construction Options)

# P4921 [MtOI2018] 情侣?给我烧了!

# 题目描述

nn 对情侣去看电影,影院里有 nn 排座位,每排有 22 个座位。
若一对情侣坐在了同一排,则称这一对情侣是和睦的。
那么问题是求出对于每一个 k[1,n]k \in [1, n],和睦的情侣恰有 kk 对的方案数,两种方案不同当且仅当存在一个人在两种方案里坐了不同位置。

# Solution of The Problem

f(x)f(x) 为有 xx 对情侣时,使他们均不和睦的方案数。
Ans(n,k)=CnkAnk2kf(nk)Ans(n, k) = C_n^k \ast A_n^k \ast 2^k \ast f(n-k),表示从 nn 个人中选出 kk 个,再选出 kk 个座位让他们坐,而每对情侣又有两种坐法,且其余情侣均不和睦的方案数。
我们再来看 f(x)f(x),考虑递推求解,假设已经有 f(0)f(0) ~ f(x1)f(x-1) 的答案。
先在 2x2x 人里面选出一人,再在剩下 2(x2)2(x-2) 人里选出一个不是他 cp 的人,方案数为 2x(2x2)2x(2x-2).
若让这两位的 cp 坐在一起,有 n1n-1 排可以选择他们也可以互换位置,而且其他 x2x-2 对情侣相互错开的方案数为 f(x2)f(x-2).
若让这两位的 cp 不坐在一起,将他们看做一对情侣 (大雾) ,和剩下的 x2x-2 对情侣一起计算,方案数为 f(x1)f(x-1).
总的方案数就是 f(x)=4x(x1)[f(x1)+2(x1)f(x2)]f(x) = 4x(x-1) \cdot [f(x-1) + 2(x-1)f(x-2)].
于是我们就成功了。
(Construction Complete)