第二类斯特林数
第二类斯特林数 \(\begin{Bmatrix}n\\m\end{Bmatrix}\) 表示把 \(n\) 个不同的小球放进 \(m\) 个相同的盒子里,不能有空盒的方案数。
一些小性质:
- \(\begin{Bmatrix}n\\0\end{Bmatrix}=[n=0]\)
- 当 \(n<m\) ,\(\begin{Bmatrix}n\\m\end{Bmatrix}=0\)
1. 递推式
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\begin{Bmatrix}n-1\\m-1\end{Bmatrix}+m\begin{Bmatrix}n-1\\m\end{Bmatrix}
\]
对第 \(n\) 个球的放法讨论:
- 单独放一个盒子,方案为 \(\begin{Bmatrix}n-1\\m-1\end{Bmatrix}\)
- 与其他球放在一个盒子,所有盒子不同,有 \(m\) 种选法,每种选法方案为 \(\begin{Bmatrix}n-1\\m\end{Bmatrix}\)
2.通项公式
\[\begin{Bmatrix}n\\m\end{Bmatrix}= \frac{1}{m!}\sum_{i=0}^m \left(-1\right)^i \binom {m}{i} \left(m-i\right)^n
\]
先将盒子当作有区别的考虑,然后将答案乘上 \(\displaystyle \frac{1}{m!}\) 消除影响。
因为第二类斯特林数要求盒不能为空,所以容斥这个条件。
至少有 \(i\) 个空盒的方案数为 \(\displaystyle \binom{m}{i}(m-i)^n\)
那么上面的式子就很显然了。
3.自然数幂
\[m^n=\sum_{i=0}^n \begin{Bmatrix}n\\i\end{Bmatrix} m^{\underline i}=\sum_{i=0}^n \begin{Bmatrix}n\\i\end{Bmatrix} \binom{m}{i} i!
\]
左式为将 \(n\) 个不同的小球放进 \(m\) 个不同的盒子里。
右式枚举非空盒子的数量 \(i\),选盒子的方案数为 \(\displaystyle \binom m i\) , 将 \(n\) 个不同的球放入 \(i\) 个相同盒子方案数为 \(\begin{Bmatrix}n\\i\end{Bmatrix}\),因为盒子不同所以有 \(i!\) 种排列。
dp
CF1097G Vladislav and a Great Legend
推式子
CF1278F Cards & P6031 Cards加强版
4.求法
1.P5395 第二类斯特林数·行
\[\begin{Bmatrix}n\\m\end{Bmatrix} m!=\sum_{i=0}^m (-1)^{m-i}\binom m i i^n
\]
\[\begin{Bmatrix}n\\m\end{Bmatrix} m!=\sum_{i=0}^m (-1)^{m-i} \frac{m!}{i!
(m-i)!} i^n\]
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^m \frac{(-1)^{m-i}i^n}{i!(m-i)!}
\]
\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^m \frac{i^n}{i!} \frac{(-1)^{m-i}}{(m-i)!}
\]
可以看出是一个卷积形式,用多项式乘法可 \(\mathcal{O(n \log n)}\) 求出第二类斯特林数的任意一行。
2.P5396 第二类斯特林数·列
构造指数型生成函数
\[F_1(x)=\sum_{i}\begin{Bmatrix} i \\1\end{Bmatrix}\frac{x^i}{i!} = e^x-1
\]
\[F_k(x)=\frac{F_1^k(x)}{k!}=\frac{(e^x-1)^k}{k!}
\]
多项式幂函数即可,复杂度 \(\mathcal O(n \log n)\)