Stirling 学习笔记

写在前面

由于最近的作业是计数题,发现有些题涉及 Stirling 数,于是有了这个小记。便于笔者书写,分别记第一类和第二类斯特灵数为 \(S1(i,j),S2(i,j)\)

基础

递推式

\(S1(i,j)=S1(i-1,j-1)+S1(i-1,j)\times (i-1)\)

\(S2(i,j)=S2(i-1,j-1)+S2(i-1,j) \times j\)

组合意义/定义

\(S1(n,m)\):表示 \(n\) 个不同元素分成 \(m\) 个圆排列的方案数。

\(S2(n,m)\):表示 \(n\) 个不同元素划分成 \(m\) 个集合的方案数。

应用

上升幂,下降幂,普通幂

\(x^{\overline n} = \prod \limits_{k=0}^{n-1} (x+k)\)\(x^{\underline n}=\prod \limits_{k=0}^{k-1} (x-k)\)

那么有:

\[\begin{align}x^{\overline n} &=\sum\limits_{k} S1(n,k) x^k\\x^n &=\sum\limits_k S2(n,k) (-1)^{n-k} x^k\\x^{\underline n} &= \sum\limits_{k} S1(n,k) (-1)^{n-k} x^k\\x^n &= \sum\limits_{k} S2(n,k) x^{\underline k}\end{align} \]

不仅如此,因为上升幂和下降幂优美的格式我们也可以考虑与组合数之间联系:

\[\begin{align}x^{\overline n}&=\frac {(x+n-1)!} {x-1!}= n! \dbinom {x+n-1} {n}\\x^{\underline n}&=\frac {x!} {(x-n+1)!} = n! \dbinom {x} {n} \\\end{align} \]

Problem

P6667

\(\sum\limits_{k=0}^{n}f(k)\dbinom nkx^k(1-x)^{n-k}\),其中 \(f(k)\) 为给定多项式。对 \(998244353\) 取模。

总结:看到多项式与组合数结合的题,可以考虑将 普通多项式转为下降幂多项式,因为下降幂和组合数都可以用阶乘相除的形式表示。此外,\(\dbinom n m \dbinom m k=\dbinom n k \dbinom {n-k} {m-k}\)

考虑设 \(f(x) = \sum\limits_{i=0}^m b_i x^{\underline i}\)

\[\begin{align}ans&=\sum\limits_{k=0}^n f(k)\dbinom nkx^k(1-x)^{n-k}\\&=\sum\limits_{i=0}^m b_i \sum\limits_{k=i}^n k^{\underline i} \dbinom n k x^k (1-x) ^{n-k}\\&=\sum\limits_{i=0}^m b_i i! \sum\limits_{k=i}^n\dbinom k i \dbinom n k x^k (1-x)^{n-k}\\&=\sum\limits_{i=0}^m b_i i! \dbinom n i \sum\limits_{k=i}^n \dbinom {n-i} {k-i} x^k (1-x)^{n-k}\\&=\sum\limits_{i=0}^m b_i i! \dbinom n i \sum\limits_{k=0}^{n-i} \dbinom {n-i} k x^{(k+i)} (1-x)^{n-k-i}\\&=\sum\limits_{i=0}^m b_i i! x^i\dbinom n i \\\end{align} \]

所以我们求出 \(f(x)=\sum\limits_{i=0}^m b_ix^{\underline i}\) 即可在 \(O(m)\) 的时间得到答案。于是就变成了这题 P5394

P6620

\((\sum\limits_{k=0}^{n}f(k)\times x^k\times \binom{n}{k})\)

沿用上面的套路。考虑下降幂多项式 \(f(x)=\sum\limits_{i=0}^m a_i x^{\underline i}\)

\[\begin{align}ans &=\sum\limits_{k=0}^{n}f(k) x^k \binom{n}{k}\\&=\sum\limits_{i=0}^m a_i \sum\limits_{k=i}^n k^{\underline i} x^k \dbinom n k\\&=\sum\limits_{i=0}^m a_i i! \sum\limits_{k=i}^n \dbinom k i \dbinom n k x^k\\&=\sum\limits_{i=0}^m a_i i! \dbinom n i \sum\limits_{k=i}^n \dbinom {n-i} {k-i} x^k\\&=\sum\limits_{i=0}^m a_i i! \dbinom n i \sum\limits_{k=0}^{n-i} \dbinom {n-i} k x^{k+i} 1^{n-i-k}\\&=\sum\limits_{i=0}^m a_i i! \dbinom n i x^i (x+1)^{n-i}\\&=\sum\limits_{i=0}^m a_i n^{\underline i} x^i (x+1)^{n-i}\end{align} \]

然后利用 Stirling 数将普通幂多项式转成下降幂多项式,这是 \(m^2\)。所以我们在 \(m^2\) 的时间解决了这个问题。

posted @ 2024-01-05 20:30  starrylasky  阅读(49)  评论(0)    收藏  举报