第二类斯特林数
\(n\brace k\) 表示将 \(n\) 个有标号元素放到 \(k\) 个无标号非空集合的方案数。
根据组合意义,我们有递推式
\[{n\brace k} ={n-1\brace k-1}+k{n-1\brace k}
\]
边界条件是 \({n\brace 0}=[n=0]\)。
根据容斥原理,我们有
\[{n\brace k}=\frac 1{k!}\sum_{i=0}^k(-1)^i(k-i)^{n}\binom{k}{i}
\]
这里除 \(k!\) 是因为我们容斥出来的是有标号非空集合。
第二类斯特林数最重要的应用可能就是普通幂转下降幂了。
\[x^n=\sum_{k}{n\brace k}x^{\underline{k}}
\]
证明我们考虑归纳法。
\[\begin{aligned}
x^{n+1}&=x\times x^n\\
&=x\sum_{k=0}^n{n\brace k}x^{\underline{k}}\\
&=\sum_{k=0}^n{n\brace k}(x-k+k)x^{\underline{k}}\\
&=\sum_{k=0}^nk{n\brace k}x^{\underline{k}}+{n\brace k}x^{\underline{k+1}}\\
&=\sum_{k=0}^{n+1}k{n\brace k}x^{\underline{k}}+{n\brace k-1}x^{\underline{k}}\\
&=\sum_{k=0}^{n+1}{n+1\brace k}x^{\underline{k}}
\end{aligned}
\]
第一类斯特林数
\({n\brack k}\) 表示将 \(n\) 个有标号元素放到 \(k\) 个非空无标号置换当中的方案数。
\[{n\brack k}={n-1\brack k-1}+(n-1){n-1\brack k}
\]
边界条件 \({n\brack 0}=[n=0]\)。
注意到,这事实上对应于一个有 \(k\) 个置换环的 \(n\) 阶排列的数量。所以显然有
\[\sum_{k=0}^n{n\brack k}=n!
\]
类似于第二类斯特林数,我们有
\[x^{\overline{n}}=\sum_{k}{n\brack k}x^k
\]
一些式子
我们有
\[x^{\underline{n}}=(-1)^n(-x)^{\overline{n}}\\
x^{\overline{n}}=(-1)^n(-x)^{\underline{n}}
\]
就有
\[\begin{aligned}
x^n&=\sum_{k=0}^n{n\brace k}x^{\underline{k}}\\
&=\sum_{k=0}^n{n\brace k}(-1)^k(-x)^{\overline{k}}\\
&=\sum_{k=0}^n{n\brace k}(-1)^k\sum_{p=0}^k{k\brack p}(-x)^p\\
&=\sum_{p=0}^nx^p\sum_{k=p}^n(-1)^{k+p}{n\brace k}{k\brack p}
\end{aligned}
\]
对比两侧多项式系数,可得
\[\sum_{k=p}^n(-1)^{k+p}{n\brace k}{k\brack p}=[p=n]
\]
类似地
\[\sum_{k=p}^n(-1)^{k+p}{n\brack k}{k\brace p}=[p=n]\\
\sum_{k=p}^n(-1)^{n-k}{n\brace k}{k\brack p}=[p=n]\\
\sum_{k=p}^n(-1)^{n-k}{n\brack k}{k\brace p}=[p=n]
\]
这就导出斯特林反演。
若
\[f(n)=\sum_{k=0}^n{n\brace k}g(k)
\]
则
\[g(n)=\sum_{k=0}^n(-1)^{n-k}{n\brack k}f(k)
\]
\[\begin{aligned}
g(n)&=\sum_{i=0}^ng(i)[i=n]\\
&=\sum_{i=0}^ng(i)\sum_{j=i}^n(-1)^{n-j}{n\brack j}{j\brace i}\\
&=\sum_{j=0}^n{n\brack j}(-1)^{n-j}\sum_{i=0}^jg(i){j\brace i}\\
&=\sum_{j=0}^n{n\brack j}(-1)^{n-j}f(j)
\end{aligned}
\]
同理,有
\[f(n)=\sum_{i=0}^n{n\brack i}g(i)\iff g(n)=\sum_{i=0}^n(-1)^{n-i}{n\brace i}f(i)
\]
那么使用这个式子,我们就可以得出
\[x^n=\sum_k(-1)^{n-k}{n\brace k}x^{\overline{k}}\\
x^{\underline{n}}=\sum_k(-1)^{n-k}{n\brack k}x^k\\
\]
可能有的例题
CF960 G
求前缀最大值个数 \(=a\),后缀最大值个数 \(=b\) 的,长度为 \(n\) 的排列个数。
\(n\le 10^5\)。
这个题怎么感觉我之前见过。
你考虑枚举最大值 \(n\) 的位置,然后发现前后独立,答案就是
\[\sum_{i=1}^nf_{i-1}g_{n-i}\binom{n-1}{i-1}
\]
其中 \(f_i,g_i\) 分别表示长度为 \(i\) 的排列,前缀最大值个数是 \(a/b\) 的方案数。
问题转化成怎么去求 \(f\)。
注意到,如果我们钦定了一些地方是前缀最大值,那么相邻两个前缀最大值位置,能填的数的大小是小于左侧那个值的。
然后可能有点跳跃,就是你发现我们可以把 \(1\sim i\) 的数分到 \(a\) 组里头,然后每一组实际上是前缀最大值及它之后的那段的这么一组。
那你发现方案数是什么,每一组肯定是把组内最大值放到前头,不同组之间肯定是按照最大值大小排序,所以这个方案数就是 \({i\brack a}\)。
问题转化成如何对 \(1\le i\le n\) 求 \({i\brack a}\)。
这是同一列第一类斯特林数的计算,我们考虑轮换的 EGF 是 \(F(x)=\sum_{i=1}\frac{(i-1)!}{i!}x^i=\sum_{i=1}\frac{x^i}{i}\),我们求它的 \(a\) 次幂即可。
CF961 G
\[\begin{aligned}
ans&=\sum_{|R|=k}\sum_{S\in R}|S|\sum_{i\in S}w_i\\
&=\sum_{S}|S|\sum_{i\in S}w_i\sum_R[|R|=k][S\in R]\\
&=\sum_{S}|S|\sum_{i\in S}w_i{n-|S|\brace k-1}\\
&=\sum_{p=1}^np{n-p\brace k-1}\sum_{|S|=p}\sum_{i\in S}w_i\\
&=\sum_{p=1}^np{n-p\brace k-1}\binom{n-1}{p-1}\sum_{i=1}^nw_i
\end{aligned}
\]
只需要处理同一列第二类斯特林数。我们考虑非空集合的 EGF 是 \(F(x)=\sum_{i\ge 1}\frac{1}{i!}x^i=e^x-1\),我们计算 \(k-1\) 次幂即可。