组合数学

排列组合

二项式定理

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

常见组合数

  • \(S=\{n_1\cdot a_1,n_2\cdot a_2,\dots,n_k\cdot a_k\}\) 集合中选出 \(r\) 个元素的方案数:

    大概是容斥一下,咕咕咕

  • 错排方案数:\(f(n)=(n-1)(f(n-1)+f(n-2))\)

  • 圆排列:记 \(Q_n^m\) 表示周长为 \(n\) 的圆上放置 \(k\) 个数的方案数。

    \[Q_n^m=\dfrac{A_n^m}{m}=\dfrac{n!}{r\times(n-r)!} \]

组合数常见性质

详见 OI-Wiki

  • 二项式定理中 \(a=b=1\) 的特殊情况:

    \[\binom{n}{0}+\binom{n}{1}+\cdots+\binom{n}{n}=\sum_{i=0}^n\binom{n}{i}=2^n \]

  • 二项式定理中 \(a=1,b=0\) 的情况:(式子中 \(n=0\) 时答案为 \(1\)

    \[\sum_{i=0}^m \binom{n}{i}\binom{m}{i} = \binom{m+n}{m}\ \ \ (n \geq m) \]

  • 拆组合数的式子:

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

  • \[ \sum_{l=0}^n\binom{l}{k} = \binom{n+1}{k+1} \]

卡特兰数

\(n\) 个点构成的二叉树个数、凸多边形的三角形划分方案数、\(1-n\) 序列出栈序列等问题都属于卡特兰数。

卡特兰数前几项为 \(1,1,2,5,14,42,132,\dots\)

常见计算公式:

\[H_n=\dfrac{\binom{2n}{n}}{n+1}(n\ge 2,n\in \N^+)\\ H_n=\begin{cases}\sum_{i=1}^{n}H_{i-1}H_{n-i}&n\ge 2,n\in\N^+\\1&n=0,1\end{cases}\\ H_n=\dfrac{H_{n-1}(4n-2)}{n+1}\\ H_n=\dbinom{2n}{n}-\dbinom{2n}{n-1} \]

第二类斯特林数

第二类斯特林数 \(\begin{Bmatrix}n\\ k\end{Bmatrix}\),也可记做 \(S(n,k)\),表示将 \(n\) 个互不相同的元素划分为 \(k\) 个互不区分的子集的方案数。

递推式

\[\begin{Bmatrix}n\\k\end{Bmatrix}=\begin{Bmatrix}n-1\\k-1\end{Bmatrix}+k\begin{Bmatrix}n-1\\k\end{Bmatrix} \]

意义是新开一个集合或将元素加入原来集合中的一个,初始值 \(S(n,0)=[n=0]\)

通项公式

用容斥计算,记 \(F(n,k)\) 表示将 \(n\) 个元素放到 \(k\)不同集合中,且允许空集的方案数;\(G(n,k)\) 表示不允许空集的方案数,有:

\[F(n,k)=k^n\\ \begin{aligned} G(n,k)&=\sum_{i=0}^k(-1)^{k-i}\dbinom{k}{i}F(n,i)\\ &=\sum_{i=0}^k(-1)^{k-i}\dbinom{k}{i}i^n\\ &=\sum_{i=0}^k\dfrac{(-1)^{k-i}\cdot i^n\cdot k!}{i!\cdot (k-i)!} \end{aligned} \]

由于 \(k\) 个集合都相同,所以上面会算重 \(k!\) 次,则通项公式为:

\[\begin{Bmatrix}n\\k\end{Bmatrix}=\sum_{i=0}^k\dfrac{(-1)^{k-i}\cdot i^n}{i!\cdot (k-i)!} \]

行、列?咕咕咕

分拆数(拆分数)

将一个数 \(n\) 拆为 \(k\) 个递增的正整数的和,方案数记为 \(p(n,k)\),有递推公式:

\[p(n,k)=\sum_{i=1}^kp(n-k,i)\\ p(n,k)=p(n-1,k-1)+p(n-k,k) \]

上面公式的含义是拆分出来的数中有 \(i\) 个非 \(0\),下面的的式子是加上一个 \(1\) 或者每个数加上 \(1\)

P6189 [NOI Online #1 入门组] 跑步 用根号分治

奇奇怪怪的组合计数

n 个点的联通图数量

\(dp[i]\) 表示 \(i\) 个点的时候的答案。

我们假设已经计算好了 \([1,n-1]\) 的情况,现在要将第 \(n\) 号点加入。

“正难则反”,我们考虑 \(n\) 个点的非联通图的数量。

假定 \(n\) 号点与之前的 \(n-1\) 个点都不连通,那么显然这是一个非联通图。

同时枚举 \(1\le j\le n-1\) ,使 \(j-1\) 个节点连为 \(1\) 个大小为 \(j\) 的连通块,选出的方案数为 \(\binom{n-1}{j-1}\) ,选出后的连通块方案数有 \(dp[j]\) 种。

剩下的 \(n-j\) 个点随便连边,由 \(\binom{n-j}{2}\) 种情况,而且这些点与前面 \(j\) 个点没有任何变相连,保证不连通。

于是递推方程为:

\[dp[n]=\dbinom{n}{2}-\sum_{j=1}^{j<n}{dp[j]\times \dbinom{n-1}{j-1}\times \dbinom{n-j}{2}} \]

[例题?又开了一个坑)()

posted @ 2021-07-25 11:58  EricQian06  阅读(88)  评论(0编辑  收藏  举报