斯特林数行和列
第二类斯特林数·行
有性质:
\[m^n=\sum_{i=0}^{m} \dbinom{m}{i}{n\brace i}i!
\]
可以无脑二项式反演:
\[\begin{aligned}
&f(m) = m^n,g(m)={n\brace m}m!
\\
&f(m)=\sum_{i=0}^m \dbinom{m}{i}g(i)
\\
&g(m)=\sum_{i=0}^m (-1)^{m-i}\dbinom{m}{i}f(i)
\end{aligned}
\]
还原得:
\[\begin{aligned}
{n\brace m}m! &=\sum_{i=0}^m (-1)^{m-i}\dbinom{m}{i}i^n
\\
{n\brace m} &=\sum_{i=0}^m \frac{(-1)^{m-i}\dbinom{m}{i}i^n}{m!}
\\
{n\brace m} &=\sum_{i=0}^m \frac{(-1)^{m-i}i^n}{i!(m-i)!}
\\
{n\brace m} &=\sum_{i=0}^m \frac{i^n}{i!}\frac{(-1)^{m-i}}{(m-i)!}
\end{aligned}
\]
这是个卷积,设:
\[A_i=\frac{i^n}{i!},B_i=\frac{(-1)^i}{i!}
\]
那么有:
\[{n\brace m}=\sum_{i=0}^m A_iB_{m-i}
\]
第二类斯特林数·列
相同的限制很难受,发现可以改成不同,最后答案除以 \(k!\) 就行。
设单个非空集合的 \(\text{EGF}\) 为:
\[G(x)=e^x-1
\]
那 \(k\) 个非空集合的 \(\text{EGF}\) 就是:
\[F(x)=(e^x-1)^k
\]
直接快速幂一波,最后答案记得乘上 \(i!\),除掉 \(k!\)。但是,\([x^0]G(x)\) 不一定是 \(1\),所以要升级版的多项式快速幂。
第一类斯特林数·行
第 \(n\) 行第一类斯特林数的 \(\text{OGF}\) 为:
\[F(x)=x^{\overline{n}}=\sum_{i=0}^n {n\brack i} x^i
\]
所以实际上就是要求出 \(x^{\overline{n}}\) 的多项式。考虑倍增:
\[x^{\overline{2n}}=x^{\overline{n}}(x+n)^{\overline{n}}
\]
所以求出平移后的多项式后乘在一起就好,设 \(f_i=[x^i]F(x)\)。
\[\begin{aligned}
F(x+n)=(x+n)^{\overline{n}} &= \sum_{i=0}^n f_i (x+n)^i
\\
&= \sum_{i=0}^n \sum_{j=0}^i f_i \dbinom{i}{j} x^j n^{i-j}
\\
&= \sum_{j=0}^n \frac{x^j}{j!} \sum_{i=j}^n f_i i! \frac{n^{i-j}}{(i-j)!}
\end{aligned}
\]
发现后面是个卷积,设:
\[\begin{aligned}
A(x) &= \sum_{i=0}^n f_{n-i}(n-i)!x^i
\\
B(x) &=\sum_{i=0}^n \frac{n^i}{i!}x^i
\end{aligned}
\]
卷起来就好。
当 \(n\) 为奇数时,算 \(n-1\),最后暴力乘上 \(x+n-1\)。
第一类斯特林数·列
和第二类斯特林数·列思路比较相似。
圆是无序计数很难受,我们先可以转换成有序来做,最后除以 \(k!\)。
考虑一个圆排列的 \(\text{EGF}\):
\[\begin{aligned}
G(x) &= \sum_{i=0}^{\infty} \frac{(i-1)! x^i}{i!}
\\
&= \sum_{i=0}^{\infty} \frac{x^i}{i}
\\
&= - \ln(1-x)
\\
&= \ln \frac{1}{1-x}
\end{aligned}
\]
那 \(k\) 个圆排列的 \(\text{EGF}\) 就为:
\[\begin{aligned}
F(x) &= G^k(x)
\\
&= (\ln \frac{1}{1-x})^k
\end{aligned}
\]
注意 \([x^0]G(x)\) 是 \(0\),要用升级版多项式快速幂。最后答案要记得乘上 \(i!\),除掉 \(k!\)。
(不用求 \(\ln\),只是写成封闭形式更好看)