斯特林数

【基本概念】

第一类斯特林数:\(\begin{bmatrix}n\\k\end{bmatrix}\):把 \(n\) 个数放入 \(k\) 个环中,本质不同的方案数。(要求每个环非空,环之间不区分,环可旋转)

递推公式:\(\begin{bmatrix}n\\k\end{bmatrix}=(n-1)\begin{bmatrix}n-1\\k\end{bmatrix}+\begin{bmatrix}n-1\\k-1\end{bmatrix}\)

第一类斯特林数没有通项公式。

\(\displaystyle\sum_{k=0}^n \begin{bmatrix}n\\k\end{bmatrix}=n!\)

第二类斯特林数:\(\begin{Bmatrix}n\\k\end{Bmatrix}\):把 \(n\) 个数放入 \(k\) 个盒中,本质不同的方案数。(非空,盒之间不区分)

递推公式:\(\begin{Bmatrix}n\\k\end{Bmatrix}=k\begin{Bmatrix}n-1\\k\end{Bmatrix}+\begin{Bmatrix}n-1\\k-1\end{Bmatrix}\)

通项公式:\(\begin{Bmatrix}n\\k\end{Bmatrix}=\dfrac{1}{k!}\displaystyle\sum_{t=0}^k(-1)^t{k\choose t}(k-t)^n\)

【斯特林数与上下阶乘幂】

可以用斯特林数来让普通次幂和 上、下阶乘幂 转化。

普通转下:\(x^n=\displaystyle\sum_{k=1}^n\begin{Bmatrix}n\\k\end{Bmatrix}\cdot x^{\underline{k}}\)

普通转上:\(x^n=\displaystyle\sum_{k=1}^n(-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix}\cdot x^{\overline{k}}\)

上转普通:\(x^{\overline{n}}=\displaystyle\sum_{k=1}^n\begin{bmatrix}n\\k\end{bmatrix}x^k\)

下转普通:\(x^{\underline{n}}=\displaystyle\sum_{k=1}^n(-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix}x^k\)

【快速求某行列斯特林数】

【重要的引理】

引理:如果 \(p\) 是质数,则 \(x^{\overline{p}}=x^p-x\pmod p\)

注意 \(x^{\overline{p}}=\sum_{k=1}^{p}\begin{bmatrix}p\\k\end{bmatrix}x^k\),比较系数,可知引理与这个命题等价\(\begin{bmatrix}p\\1\end{bmatrix}=-1,\begin{bmatrix}p\\p\end{bmatrix}=1,\begin{bmatrix}p\\2\sim p-1\end{bmatrix}=0\)

\(\begin{bmatrix}p\\1\end{bmatrix}\) 等于 \(p\) 个数的圆排列 \((p-1)!\),由威尔逊定理知 \((p-1)!=1\pmod p\)

\(\begin{bmatrix}p\\p\end{bmatrix}\) 只能每个环一个,方案数 \(=1\)

\(s(x)=x^{\overline{p}}\)\(f(x)=x^p-x\) 这两个多项式。显然 \(x=0\sim p-1\)\(s(x)=0\);由费马小定理,\(x=0\sim p-1\)\(x^p\equiv x\pmod p\),所以 \(f(x)\)\(x=0\sim p-1\) 也等于 \(0\)

观察 \(G(x)=s(x)-f(x)\),因为 \(x^{\overline{p}}-(x^p-x)\)\(x^p\) 项消去了,所以 \(\deg G(x)<p\)。但是由上面我们知道 \(G(x)\)\(0\sim p-1\)\(p\) 个零点。由拉格朗日定理知 \(G(x)=0\iff s(x)=f(x)\pmod p\)

【快速求】

如果 \(n\) 比较小直接上递推公式了。

【行】

  1. \(\begin{bmatrix}n\\0\sim n\end{bmatrix}\),转求 $x^{\overline{n}} $ 的系数。

    \(f_n(x)=x^{\overline n}\),则 \(f_{2n}(x)=f_n(x)+f_n(x+n)\)。先递归求出 \(f_{n/2}(x)\),然后多项式平移。

  2. \(\begin{Bmatrix}n\\0\sim n\end{Bmatrix}\)

    法一:因为 \(x^n=\displaystyle\sum \begin{Bmatrix}n\\i\end{Bmatrix}x^{\underline{i}}\),可以转求 \(x^n\) 的下降幂表示,\(O(n\log^2n)\)

    法二:用到通项公式 \(\begin{Bmatrix}n\\k\end{Bmatrix}=\dfrac{1}{k!}\displaystyle\sum_{t=0}^k(-1)^t{k\choose t}(k-t)^n\)

    \[\sum_{t=0}^k(-1)^t{k\choose t}(k-t)^n=\sum_{t=0}^k\dfrac{(-1)^t}{t!}\cdot \dfrac{(k-t)^n}{(k-t)!} \]

    标准形式 FFT,卷出来之后记得 \(\times \dfrac{1}{k!}\)

【列】

  1. 第一类。\(n\) 个数放入一个圆排列,\(\begin{bmatrix}n\\1\end{bmatrix}=(n-1)!\)。考虑它关于 \(n\) 的 EGF:\(\sum_{n>0}\begin{bmatrix}n\\1\end{bmatrix}\cdot \dfrac{x^n}{n!}=\sum_{b>0}\dfrac{x^n}{n}\).

    记为 \(\hat{A}(x)\)。根据 EGF 相关知识可得,放入 \(k\) 个圆排列的 EGF 是 \(\dfrac{1}{k!}(\hat{A}(x))^k\)。用多项式快速幂即可。

  2. 第二类。\(n\) 个数放入一个盒子的方案数是 \(1\)\(1\) 的 EGF 是 \(sum_{n>0}\dfrac{x^n}{n!}=e^x-1\)\(k\) 个盒子就是 \(\dfrac{1}{k!}(e^x-1)^k\)

【题目】

CF932E

\(\displaystyle\sum(^n_i)i^k=\sum_{i=1}^n(^n_i)\sum_{j=1}^k\{^k_j\}i^{\underline{j}}=\sum_{i=1}^n(^n_i)\sum_{j=1}^{\min(k,i)}\{^k_j\}(^i_j)\cdot j!=\sum_{j=1}^{\min(k,n)}j!\cdot \{^k_j\}\sum_{i=j}^n(^n_i)(^i_j).\)

这里用一下这个:\((^n_i)(^i_j)=(^n_j)(^{n-j}_{i-j})\).

\(\displaystyle...=\sum_{j=1}^{\min(k,n)}j!(^n_j)\{^k_j\}\sum_{i=j}^n(^{n-j}_{i-j})=\sum_{j=1}^{\min(k,n)}j!(^n_j)\{^k_j\}\cdot 2^{n-j}\)

\(\min(k,n)\le 5000\),就相当于 \(5000\) 个数求和。

\(j!,(^n_j),2^{n-j}\) 都可以预处理出来。(注意这里 \(j\) 的范围很小)

\(\begin{Bmatrix}k\\j\end{Bmatrix}\) 第二类斯特林数我们直接用递推公式,\(O(k^2)\) 预处理。

斯特林

问:\(1\sim n\) 的置换,有偶数个环 计数。

即求 \(\displaystyle\sum_{k\equiv 0\pmod 2}[^n_k]\)

解:\(x^{\overline{n}}=\sum_{k=1}^n[^n_k]x^k\)

\(x\) 代入 \(1,-1\) 可以消掉奇数次幂项。

posted @ 2024-02-01 09:35  FLY_lai  阅读(16)  评论(0编辑  收藏  举报