感觉有很多高大上的数,自己都不会,还是学一下吧。
1 第一类斯特林数
1.1 意义
\(n\) 个元素组成 \(m\) 个环的方案数,元素不同,环不能为空。
1.2 记号
\[\begin{bmatrix}n\\m\end{bmatrix}
\]
1.3 计算方法
\[\begin{bmatrix}n\\m\end{bmatrix}=(n-1)\begin{bmatrix}n-1\\m\end{bmatrix}+\begin{bmatrix}n-1\\m-1\end{bmatrix}
\]
组合意义:
- 新的数可以放在之前长度为 \(x\) 的环里,有 \(x\) 种放法,由于所有环环长和为 \(n-1\) 所以有 \(n-1\) 种不增加环的方法。
- 新的数可以新开一个环。
1.4 性质
1.4.1
\[\sum_{i=1}^n\begin{bmatrix}n\\i\end{bmatrix}=n!
\]
定义 \(next_i\) 为 \(i\) 顺时针的第一个珠子,显然 \(next\) 是一个排列。
不难发现左边的式子不重不漏地覆盖了所有 \(next\) 的排列。
1.4.2
\[x^{\overline n}=\sum_{i=1}^n\begin{bmatrix}n\\i\end{bmatrix}x^i
\]
上面那个东西的加强版,可以使用数学归纳法简单证明。
1.4.3
\[x^{\underline n}=\sum_{i=1}^n\begin{bmatrix}n\\i\end{bmatrix}(-1)^{n-i}x^i
\]
由于 \(x^{\underline n}=(-1)(-x)^{\overline n}\) 所以很好证明。
1.4.4
\[\sum\limits_{i=k}\begin{bmatrix}i \\ k\end{bmatrix}\dfrac{x^i}{i!}=\frac{1}{k!}(-\ln(1-x))^k
\]
\[S_1(x,y)=\sum_{i=0}\sum_{j=0}\begin{bmatrix}i\\j\end{bmatrix}\frac{x^iy^j}{i!}=(1-x)^{-y}
\]
我们用组合意义解决顶上的东西。
\(n\) 个数放 \(1\) 个环的 \(\text{EGF}\) 是 \(-\ln(1-x)\)。
\(n\) 个数放 \(k\) 个环,环有序的 \(\text{EGF}\) 是 \((-\ln(1-x))^k\)。
然后因为环无序,直接除以 \(k!\) 就可以了。
2 第二类斯特林数
2.1 意义
\(n\) 个元素组成 \(m\) 组的方案数,元素不同,组相同。
2.2 记号
\[\begin{Bmatrix}n\\m\end{Bmatrix}
\]
2.3 计算方法
\[\begin{Bmatrix}n\\m\end{Bmatrix}=m\begin{Bmatrix}n-1\\m\end{Bmatrix}+\begin{Bmatrix}n-1\\m-1\end{Bmatrix}
\]
组合意义和上面的差不多。
2.4 性质
2.4.1
\[m^n=\sum_{i=1}^m\begin{Bmatrix}n\\i\end{Bmatrix}A_m^i
\]
2.4.2
\[m^n=\sum_{i=1}^m\begin{Bmatrix}n\\i\end{Bmatrix}i!\binom{m}{i}
\]
\[F(x)=x^n,G(x)=\begin{Bmatrix}n\\x\end{Bmatrix}x!
\]
\[F(m)\sum_{i=0}^mG(i)\binom{m}{i}\iff G(m)=\sum_{i=0}^m(-1)^{m-i}F(i)\binom{m}{i}
\]
\[\begin{Bmatrix}n\\m\end{Bmatrix}m!=\sum_{i=0}^m(-1)^{m-i}i^n\binom{m}{i}
\]
2.4.3
\[\sum\limits_{i=k}\begin{Bmatrix}i \\ k\end{Bmatrix}\dfrac{x^i}{i!}=\frac{1}{k!}(e^x-1)^k
\]
\[S_2(x,y)=\sum_{i=0}\sum_{j=0}\begin{Bmatrix}i\\j\end{Bmatrix}\frac{x^iy^j}{i!}=\exp(y(e^x-1))
\]
我们还是用组合意义解决顶上的东西。
\(n\) 个数放 \(1\) 个盒子的 \(\text{EGF}\) 是 \(e^x-1\)。
\(n\) 个数放 \(k\) 个盒子,盒子有序的 \(\text{EGF}\) 是 \((e^x-1)^k\)。
然后因为盒子无序,直接除以 \(k!\) 就可以了。
3 四个斯特林数板子
3.1 第二类斯特林数·行
最简单的板子,我们直接上式子卷积即可。
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^mi^n\frac{1}{i!}(-1)^{m-i}\frac{1}{(m-i)!}
\]
3.2 第一类斯特林数·行
\[x^{\overline n}=\sum_{i=1}^n\begin{bmatrix}n\\i\end{bmatrix}x^i
\]
于是我们要求 \(x^{\overline{n}}\)。
考虑倍增。显然从 \(x^{\overline{n}}\) 到 \(x^{\overline{n+1}}\) 很水,直接乘一个 \((x+n)\) 就行。
所以我们考虑怎么从 \(x^{\overline{n}}\) 到 \(x^{\overline{2n}}\)。
\[x^{\overline{2n}}=x^{\overline{n}}(x+n)^{\overline{n}}
\]
\[x^{\overline{n}}=\sum_{i=0}^nf_ix^i
\]
\[(x+n)^{\overline{n}}=\sum_{i=0}^nf_i(x+n)^i
\]
\[=\sum_{i=0}^nf_i\sum_{j=0}^i\binom{i}{j}x^jn^{i-j}
\]
\[=\sum_{i=0}^nx^i\sum_{j=i}^n\frac{j!}{i!(j-i)!}n^{j-i}f_j
\]
\[=\sum_{i=0}^nx^ii!\sum_{j=i}^nj!f_jn^{j-i}\frac{1}{(j-i)!}
\]
然后就可以卷了。
3.3 第二类斯特林数·列
3.3.1 Solution 1
我们推 \(\text{OGF}\) 可以得到
\[F_k(x)=\sum\limits_{i=k}\begin{Bmatrix}i \\ k\end{Bmatrix}x^i=\sum\limits_{i=k}(k\begin{Bmatrix}i-1\\k\end{Bmatrix}+\begin{Bmatrix}i-1\\k-1\end{Bmatrix})x^i
\]
\[F_k(x)=x(kF_k(x)+F_{k-1}(x))
\]
\[F_k(x)=\frac{x}{1-xk}F_{k-1}(x)
\]
\[\because F_0(x)=1
\]
\[\therefore F_k(x)=\frac{x^k}{\prod(1-ix)}
\]
\(\text{OGF}\) 分治计算时间复杂度 \(O(n\log^2n)\)。
3.3.2 Solution 2
见 2.4.3。
\(\text{EGF}\) 快速幂计算时间复杂度 \(O(n\log n)\)。
3.4 第一类斯特林数·列
见 1.4.4。