斯特林数及斯特林反演学习笔记

定义

第一类斯特林数:将 \(n\) 个数分成 \(m\) 个非空环的方案数为 \(n\brack m\)

\[{n\brack m}=(n-1){n-1\brack m} + {n - 1 \brack m - 1} \]

第二类斯特林数:将 \(n\) 个数分成 \(m\) 个非空集合的方案数为 \(n\brace m\)

\[{n\brace m}=m{n-1\brace m} + {n - 1 \brace m - 1} \]

求单个可以考虑二项式反演:将 \(n\) 个数分成 \(m\) 个集合的方案数为 \(n^m\),于是

\(m^n=\sum\limits_{i=0}^m\binom{m}{i}{n\brace i}\color{red}{i!}\)

\({n\brace m}\color{red}{m!}\color{normal}=\sum\limits_{i=0}^m(-1)^{m-i}\binom{m}{i}i^n\)

为什么要乘以 \(m!/i!\)?第二类斯特林数内 \(m\) 个集合没有区别,因此每种方案需要被重复计数阶乘次。


转换

普通幂转下降幂:\(m^n=\sum\limits_{i=0}^m\binom{m}{i}i!{n\brace i}=\sum\limits_{i=0}^{\color{red}n}{n\brace i} m^{\underline i}\)

上升幂转普通幂:\(m^{\overline n}=\sum\limits_{i=0}^n{n\brack i}m^i\)

对以上两个式子施以下文中“斯特林反演”可以得到:

下降幂转普通幂:\(m^{\underline n}=\sum\limits_{i=0}^n(-1)^{n-i}{n \brack i}m^i\)

普通幂转上升幂:\(m^n=\sum\limits_{i=0}^n(-1)^{n-i}{n\brace i}m^{\overline i}\)


反演

引理 - 反转公式:

\[\sum_{k=m}^n(-1)^{n-k}{n\brace k}{k\brack m}=[m=n] \]

证明:

\(m^n=\sum\limits_{i=0}^n {n\brace i}m^{\underline i}=\sum\limits_{i=0}^n {n\brace i}\sum\limits_{j=0}^i(-1)^{i-j}m^j{i\brack j}=\sum\limits_{j=0}^n m^j\sum\limits_{i=j}^n(-1)^{i-j}{n\brace i}{i\brack j}\)

后面那一坨应当仅在 \(j=n\) 的时候为 \(1\),于是证毕。

斯特林反演:

\[f(x)=\sum_{i=0}^x {x\brack i} g(i)\Leftrightarrow g(x)=\sum_{i=0}^x(-1)^{x-i}{x\brace i}f(i) \]

证明:

\(g(x)=\sum\limits_{i=0}^x[i=x]g(i)=\sum\limits_{i=0}^x\left(\sum\limits_{j=i}^x(-1)^{x-j}{x\brace j}{j\brack i}\right)g(i)\\ =\sum\limits_{j=0}^x(-1)^{x-j}{x\brace j}\left(\sum\limits_{i=0}^j {j\brack i}g(i)\right)=\sum\limits_{i=0}^x(-1)^{x-i}{x\brace i}f(i) \)


例题

CF1097G - Vladislav and a Great Legend

\(f_i\) 表示 \(i\) 子树中所有 \(S\subseteq \{\mathrm{subtree}_i\}\neq \varnothing\) 往上顶到 \(i\) 形成的虚树中边数多重集。

怎么转移?

\(f_u=\{0, 0\}\),对于所有 \(v\),令 \(f_u=f_u + f_u \times f_v \times \{1\}\)

最后从 \(f_u\) 中扔掉一个 \(0\)(除去空集)

答案为 。
现在要求的是 \(k\) 次方和,自然维护 \(g_{u, k}=\sum_{x\in f_u} x^k\) 然后二项式展开转移。

可惜这样合并是 \(\mathcal{O}(k^2)\) 的,爆辣!

考虑树上背包中,假设合并复杂度是 \(\min(\mathrm{siz}_u, x)\times \min(\mathrm{siz}_v, x)\) 的,那么 复杂度实际上为 \(\mathcal{O}(nx)\)

我们放弃维护 \(x^k\) 而是转而维护 \(x^{\underline k}\),在 \(k>x\) 时这项无值。

\((a+b)^{\underline k}=\sum\limits_{i=0}^k a^{\underline i} b^{\underline{k-i}}\binom{k}{i}\)


P4609 - [FJOI2016] 建筑师

考虑枚举 \(n\) 的位置,之后左边决定了前缀最大值个数,右边决定了后缀最大值个数。

\(n\) 个数的排列有 \(m\) 个前缀最大值的方案数为 \(f(n, m)\)

观察到 \(n\) 个数的排列有 \(m\) 个前缀最大值的实际方案数为:

  • \(n\) 个数分成 \(m\) 个集合
  • 集合之间按照集合最大值排序
  • 集合内有 \((\mathrm{size} -1)!\) 中方法

可以发现,这等价于 \(n\) 个数划分为 \(m\) 个圆排列的方案数,即 \(n\brack m\)

答案为 \(\sum\limits_{i=1}^{n- 1} \binom{n-1}{i}{i\brack A - 1}{n-1-i\brack B - 1}\)

我们先选出 \(A-1+B-1\) 个圆排列,再分组试试!

现在答案变成了 \({n - 1\brack A - 1 + B - 1}\times \binom{A - 1 + B - 1}{A - 1}\)


CF932E - Team Work

\(\sum\limits_{i=1}^n \binom{n}{i}i^k=\sum\limits_{i=1}^n\binom{n}{i}(\sum\limits_{j=0}^k {k\brace j} i^{\underline j})=\sum\limits_{j=0}^k{k\brace j}j! \left(\sum\limits_{i=1}^n\binom{n}{i}\binom{i}{j}\right)\)

诶,后面这一坨用点组合意义是不是 \(=\binom{n}{j}\times 2^{n-j}\) 啊?


P4827 - [国家集训队] Crash 的文明世界

这题比 CF1097G 弱一点,涉及的操作只有集合整体 \(+1\)

那么维护 \(\sum x^k\) 是否可行?哎,怎么合并还是 \(k^2\) 的。

套用 CF1097G,维护 \(\sum x^{\underline k}\) 就做完了


P6620 - [省选联考 2020 A 卷] 组合数问题

考虑把多项式分别维护,

\(\sum\limits_{z=0}^m a_z\left(\sum\limits_{i=0}^n i^zx^i\binom{n}{i}\right)\)

后面部分 \(=\sum\limits_{j=0}^z {z\brace j} j!\sum\limits_{i=0}^n \binom{i}{j}\binom{n}{i}x^i=\sum\limits_{j=0}^z {z\brace j} j!\binom{n}{j}x^j\sum\limits_{i=j}^n\binom{n-j}{i-j}x^{i-j}\\ =\sum\limits_{j=0}^z {z\brace j} j!\binom{n}{j}x^j(x+1)^{n-j}\\ =\sum\limits_{j=0}^z {z\brace j} n^{\underline j}x^j(x+1)^{n-j} \)


CF961G - Partitions

统计每个数的贡献可以得到答案为 \((\sum a_i)\sum\limits_{j=1}^{n}\binom{n-1}{j-1}j{n-j\brace k - 1}\)

我们可以通过多项式科技来搞出第二类斯特林数,但是这个题似乎没有 "FFT" Tag。

利用 \({n\brace m}=\sum\limits_{i=0}^m\frac{(-1)^{m-i}\binom{m}{i}i^n}{m!}\) 带入,化简后半部分得

\(\sum\limits_{i=1}^n i\binom{n-1}{i-1}\frac{1}{k!}(-1)^k\sum\limits_{j=0}^k(-1)^{j}\binom{k}{j}j^{n-i}\)

\(\frac{1}{k!}\)\((-1)^k\) 丢掉并化简,得到

\(\sum\limits_{j=0}^k (-1)^j\binom{k}{j}\sum\limits_{i=1}^n i\binom{n-1}{i-1}j^{n-i}\)

右边部分 \(=\sum\limits_{i=1}^n(i-1 + 1)\binom{n-1}{i-1}j^{n-i}\\ =\sum\limits_{i=1}^n(i-1)\binom{n-1}{i-1}j^{n-i}+(1+j)^{n-1}\\ =(n-1)\sum\limits_{i=0}^{n-2}\binom{n-2}{i}j^{n-2-i}+(1+j)^{n-1}\\ =(n-1)(j + 1)^{n-2}+(1+j)^{n-1} \)


CF1278F - Cards

\(E(x^k)=\sum\limits_{i=0}^n a^ib^{n-i}\binom{n}{i}i^k\),其中 \(a=\frac{1}{m},b=\frac{m-1}{m}\)

注意到这完全就是 P6620。


唯有那份炫目,未曾忘却。

posted @ 2024-10-17 21:25  fjy666  阅读(46)  评论(0)    收藏  举报