组合数学

组合数学进阶

插板法

问题1

求把 \(n\) 个相同的球放进 \(m\) 个不同的盒子的方案数(盒子不可以为空)。

考虑在间隔里插板子,答案 \(\binom{n-1}{m-1}\)

问题2

求把 \(n\) 个相同的球放进 \(m\) 个不同的盒子的方案数(盒子可以为空)。

考虑借 \(m\) 个球,使问题转换为问题1,答案 \(\binom{n+m-1}{m-1}\)

Catalan数

问题1

求在网格图中,每次可以向上或向右走,从 \((0,0)\) 走到 \((n,m)\) 的方案数。

一共需要走 \(n+m\) 步,其中 \(n\) 步向右,答案 \(\binom{n+m}{n}\)

问题2

求在网格图中,每次可以向上或向右走,且不能碰到直线 \(y=x+1\),从 \((0,0)\) 走到 \((n,m)\) 的方案数。

先计算不考虑限制的方案数。再考虑不合法路径数,把不合法路径与直线的交点后面的线关于 \(y=x+1\) 做翻折,则路径会变成一条到 \((n,m)\) 关于 \(y=x+1\) 的对称点,即 \((m-1,n+1)\),最终答案 \(\binom{n+m}{n}-\binom{n+m}{m-1}\)

斯特林数

第一类斯特林数:把 \(n\) 个不同元素构成 \(m\) 个非空圆排列的方案数,记为 \(\begin{bmatrix} n \\ m \end{bmatrix}\)
递推公式:

\[\begin{bmatrix} n \\ m \end{bmatrix}=\begin{bmatrix} n-1 \\ m-1 \end{bmatrix}+(n-1)\begin{bmatrix} n-1 \\ m \end{bmatrix} \]

第二类斯特林数:把 \(n\) 个不同元素构成 \(m\) 个非空子集的方案数,记为 \(\begin{Bmatrix} n \\ m \end{Bmatrix}\)
递推公式:

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

重要公式:

\[m^n=\sum_{i=0}^{m}\begin{Bmatrix} n \\ i \end{Bmatrix}m^{\underline{i}}=\sum_{i=0}^{m}\begin{Bmatrix} n \\ i \end{Bmatrix}\binom{m}{i}i! \]

证明:两边都是在计算 \(n\) 个有标号球放到 \(m\) 个有标号盒子里的方案数。

反演

二项式反演

\(g_i\) 表示至多 \(i\) 个,\(f_i\) 表示恰好 \(i\) 时:

\[g_k=\sum_{i=0}^{k}\binom{k}{i}f_i \iff f_k=\sum_{i=0}^{k}\binom{k}{i}(-1)^{k-i}g_i \]

\(g_i\) 表示至少 \(i\) 个,\(f_i\) 表示恰好 \(i\) 时:

\[g_k=\sum_{i=k}^{n}\binom{i}{k}f_i \iff f_k=\sum_{i=k}^{n}\binom{i}{k}(-1)^{i-k}g_i \]

子集反演

前置知识:高维前缀和

前缀和代码

for(int i=0;i<n;i++)
    for(int j=0;j<(1<<n);j++)
        if(j&(1<<i))
            f[j]+=f[j^(1<<i)];

差分代码

for(int i=0;i<n;i++)
    for(int j=0;j<(1<<n);j++)
        if(j&(1<<i))
            f[j]-=f[j^(1<<i)];

正文

\[F[S]=\sum_{T\subseteq S}G[T] \iff G[S]=\sum_{T\subseteq S}(-1)^{|S|-|T|}F[T] \]

min-max反演

\[\max(S)=\sum_{T\subseteq S}(-1)^{|T|+1}\min(T) \]

斯特林反演

\[f_n=\sum_{i=0}^{n}\begin{Bmatrix} n \\ i \end{Bmatrix}g_i \iff g_n=\sum_{i=0}^{n}(-1)^{n-i}\begin{bmatrix} n \\ i \end{bmatrix}f_i \]

\[f_n=\sum_{i=n}^{inf}\begin{Bmatrix} i \\ n \end{Bmatrix}g_i \iff g_n=\sum_{i=n}^{inf}(-1)^{i-n}\begin{bmatrix} i \\ n \end{bmatrix}f_i \]

posted @ 2026-02-06 16:52  ShanLing3  阅读(2)  评论(0)    收藏  举报
//雪花飘落效果