第二类斯特林数

Definition

第二类斯特林数 \(\begin{Bmatrix}n\\k\end{Bmatrix}\),意义为将 \(n\) 个不同的元素分为 \(k\) 个非空子集的方案数。

\(\displaystyle\begin{Bmatrix}n\\k\end{Bmatrix}=\begin{Bmatrix}n-1\\k-1\end{Bmatrix}+k\begin{Bmatrix}n-1\\k\end{Bmatrix}\),边界为 \(\begin{Bmatrix}n\\0\end{Bmatrix}=\lbrack n=0\rbrack\).


Lemma 1

  • \(\displaystyle x^n=\sum_{k=0}^{n}\begin{Bmatrix}n\\k\end{Bmatrix}x^{\underline k}\)

\(x^{\underline k}\)\(x\)\(k\) 次下降幂,即 \(\displaystyle\prod_{i=x}^{x-k+1}i=\frac{x!}{(x-k)!}\).

即用 \(x\) 种颜色给 \(n\) 个点染色,共 \(x^n\) 种方案,同样表示的是总共染 \(k\) 种颜色,把 \(n\) 个点分为这 \(k\) 个集合的方案数。


Cards

进行 \(n\) 次操作:你有 \(\large\frac{1}{m}\) 的概率获得 \(1\) 贡献。

记贡献为 \(x\),求 \(x^k\) 的期望值。

答案对 \(998244353\) 取模。

\(1\le n,m<998244353\)\(1\le k\le 5000\).


\(p=\large\frac{1}{m}\),答案是

\[\sum_{i=0}^{n}i^k\cdot\binom{n}{i}\cdot p^i\cdot (1-p)^{n-i} \]

用上面的式子将 \(i^k\) 展开:

\[\sum_{i=0}^{n}\binom{n}{i}\cdot p^i\cdot(1-p)^{n-i}\cdot\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline j} \]

\[\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=0}^{n}\binom{n}{i}\cdot p^i\cdot(1-p)^{n-i}\cdot i^{\underline j} \]

下降幂有一个性质:\(\displaystyle \binom{n}{i}i^{\underline j}=\binom{n-j}{i-j}n^{\underline j}\)

证明这个式子可以直接展开:

  • \(\displaystyle=\frac{n!}{i!(n-i)!}\cdot\frac{i!}{(i-j)!}=\frac{n!}{(n-i)!(i-j)!}\)

  • \(\displaystyle=\frac{(n-j)!}{(n-i)!(i-j)!}\cdot\frac{n!}{(n-j)!}=\frac{n!}{(n-i)!(i-j)!}\)

可证上式。

继续往下做:

\[\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}n^{\underline j}\sum_{i=0}^{n}\binom{n-j}{i-j}\cdot p^i\cdot(1-p)^{n-i} \]

\[\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}n^{\underline j}\sum_{i=0}^{n-j}\binom{n-j}{i}\cdot p^{i+j}\cdot(1-p)^{n-i-j} \]

\[\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}n^{\underline j}\cdot p^j\sum_{i=0}^{n-j}\binom{n-j}{i}\cdot p^i\cdot(1-p)^{n-j-i} \]

后面是二项式定理,即

\[\sum_{i=0}^{n-j}\binom{n-j}{i}\cdot p^i\cdot(1-p)^{n-j-i}=(p+(1-p))^{n-j}=1 \]

得到

\[\sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}n^{\underline j}\cdot p^{j} \]

\(n^{\underline j}\) 可以直接计算,时间复杂度 \(O(k^2)\).


二项式反演的一种类型:

  • \(\displaystyle f(n)=\sum_{i=0}^{n}\binom{n}{i}g(i)\)

\[\Leftrightarrow g(n)=\sum_{i=0}^{n}(-1)^{n-i}\binom{n}{i}f(i) \]


Lemma 2 - 通项公式

\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^{m}\frac{(-1)^{m-i}\cdot i^n}{(m-i)!\cdot i!} \]

证明:仍然用到自然数幂转下降幂的式子:

\[m^n=\sum_{i=0}^{m}\binom{m}{i}\begin{Bmatrix}n\\i\end{Bmatrix}i! \]

二项式反演,设

\[f(m)=m^n,g(m)=\begin{Bmatrix}n\\m\end{Bmatrix}m! \]

\[f(m)=\sum_{i=0}^{m}\binom{m}{i}g(i) \]

\[\Leftrightarrow g(m)=\sum_{i=0}^{m}\binom{m}{i}(-1)^{m-i}f(i) \]

\[=\sum_{i=0}^{m}\binom{m}{i}(-1)^{m-i}\cdot i^n \]

展开 \(g(m)\)

\[\begin{Bmatrix}n\\m\end{Bmatrix}m!=\sum_{i=0}^{m}\binom{m}{i}(-1)^{m-i}\cdot i^n \]

\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^{m}\frac{\binom{m}{i}(-1)^{m-i}\cdot i^n}{m!} \]

拆开组合数:

\[\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=0}^{m}\frac{(-1)^{m-i}\cdot i^n}{(m-i)!\cdot i!} \]

即第二类斯特林数的通项公式。


P5395 第二类斯特林数·行

求出所有的 \(\begin{Bmatrix}n\\i\end{Bmatrix},i\in\lbrack0,n\rbrack\).

答案对 \(167772161=5\times 2^{25}+1\) 取模。

\(1\le n\le 2\times 10^5\).


通项公式不就是卷积的形式吗?

\(\displaystyle f(x)=\frac{x^n}{x!}\)\(\displaystyle g(x)=\frac{(-1)^x}{x!}\) 卷起来即可。时间复杂度 \(O(n\log n)\).


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

\[\sum_{k=0}^{n}f(k)\cdot x^k\cdot\binom{n}{k} \]

\(f(k)\) 为一个 \(m\) 次多项式。

答案对 \(p\) 取模。

\(1\le n,x,p\le 10^9\)\(0\le a_i\le 10^9\)\(0\le m\le \min(n,1000)\).


直接展开 \(f(k)\)

\[\sum_{k=0}^{n}\sum_{i=0}^{m}a_i\cdot k^i\cdot x^k\cdot \binom{n}{k} \]

\(\displaystyle k^i=\sum_{j=0}^{k}\begin{Bmatrix}i\\j\end{Bmatrix}\binom{k}{j}j!\),此处不妨令上界为 \(i\),代进去:

\[\sum_{k=0}^{n}\sum_{i=0}^{m}a_i\cdot\sum_{j=0}^{i}\begin{Bmatrix}i\\j\end{Bmatrix}\binom{k}{j}j!\cdot x^k\cdot\binom{n}{k} \]

考虑合并一下两个组合数,就是先在 \(n\) 个里面选 \(k\) 个,再从 \(k\) 个里面选 \(j\) 个。

也就是先在 \(n\) 个里面选 \(j\) 个,然后再从 \(n-j\) 个里选剩下的 \(k-j\) 个,即 \(\displaystyle\binom{n-j}{k-j}\binom{n}{j}\).

\[\sum_{k=0}^{n}\sum_{i=0}^{m}a_i\cdot\sum_{j=0}^{i}\begin{Bmatrix}i\\j\end{Bmatrix}\binom{n-j}{k-j}\binom{n}{j}\cdot j!\cdot x^k \]

\[\sum_{i=0}^{m}a_i\cdot\sum_{j=0}^{i}\begin{Bmatrix}i\\j\end{Bmatrix}\binom{n}{j}\cdot j!\cdot\sum_{k=0}^{n}\binom{n-j}{k-j}x^k \]

后面长得很像二项式定理:

\[\sum_{k=0}^{n}\binom{n-j}{k-j}x^k=\sum_{k=0}^{n}\binom{n-j}{k-j}x^{k-j}\cdot x^j \]

\[=(x+1)^{n-j}\cdot x^j \]

也就是

\[\sum_{i=0}^{m}a_i\cdot\sum_{j=0}^{i}\begin{Bmatrix}i\\j\end{Bmatrix}\binom{n}{j}j!\cdot (x+1)^{n-j}\cdot x^j \]

\(\displaystyle\binom{n}{j}j!=n^{\underline j}\) 递推计算。时间复杂度 \(O(m^2)\).


P6031 CF1278F Cards 加强版

与第一题不同于 \(k\le 10^7\).


Part 1

快进到答案式 \(\displaystyle \sum_{j=0}^{k}\begin{Bmatrix}k\\j\end{Bmatrix}n^{\underline j}p^j,p=\frac{1}{m}\).

利用通项公式

\[\begin{Bmatrix}n\\m\end{Bmatrix}=\frac{1}{m!}\sum_{i=0}^{m}(-1)^{m-i}\binom{m}{i}i^n \]

展开得

\[\sum_{i=0}^{k}\frac{n^{\underline i}\cdot p^i}{i!}\sum_{j=0}^{i}(-1)^{i-j}\binom{i}{j}j^k \]

\[\sum_{j=0}^{k}(-1)^j\cdot j^k\sum_{i=j}^{k}\frac{n^{\underline i}\cdot (-p)^i}{i!}\binom{i}{j} \]

\[\sum_{j=0}^{k}\frac{(-1)^j\cdot j^k}{j!}\sum_{i=j}^{k}\frac{n^{\underline i}\cdot (-p)^i}{(i-j)!} \]

\(i\leftarrow i-j\)

\[\sum_{j=0}^{k}\frac{(-1)^j\cdot j^k\cdot (-p)^j}{j!}\cdot \sum_{i=0}^{k-j}\frac{n^{\underline {i+j}}\cdot (-p)^i}{i!} \]

由于 \(n^{\underline {i+j}}=n^{\underline j}\cdot (n-j)^{\underline i}\)

\[\sum_{j=0}^{j}\frac{j^k\cdot p^j\cdot n^{\underline j}}{j!}\sum_{i=0}^{k-j}\frac{(n-j)^{\underline i}\cdot (-p)^i}{i!} \]

\[\sum_{j=0}^{k}\frac{j^k\cdot p^j\cdot n^{\underline j}}{j!}\sum_{i=0}^{k-j}\binom{n-j}{i}(-p)^i \]


Part 2

在这部分令 \(p\leftarrow -p\),求解

\[f(j)=\sum_{i=0}^{k-j}\binom{n-j}{i}p^i \]

作差得

\[f(j-1)-f(j) \]

\[=\sum_{i=0}^{k-j+1}\binom{n-j+1}{i}p^i-\sum_{i=0}^{k-j}\binom{n-j}{i}p^i \]

\[=\sum_{i=0}^{k-j}\binom{n-j}{i-1}p^i+\binom{n-j+1}{k-j+1}p^{k-j+1} \]

\[=p\sum_{i=0}^{k-j-1}\binom{n-j}{i}p^i+\binom{n-j+1}{k-j+1}p^{k-j+1} \]

\[=p\Bigg(f(j)-\binom{n-j}{k-j}p^{k-j}\Bigg)+\binom{n-j+1}{k-j+1}p^{k-j+1} \]

\[=pf(j)+\Bigg(\binom{n-j+1}{k-j+1}-\binom{n-j}{k-j}\Bigg)p^{k-j+1} \]

\[=pf(j)+\binom{n-j}{k-j+1}p^{k-j+1} \]

可得

\[f(j-1)=(p+1)f(j)+\binom{n-j}{k-j+1}p^{k-j+1} \]

\[=(p+1)f(j)+\frac{n^{\underline {k+1}}}{n^{\underline j}\cdot (k-j+1)!}p^{k-j+1} \]

边界值 \(f(\min(n,k))=1\).

这使得可以 \(O(k)\) 递推求解所有的 \(f\).


Part 3

\(p\) 变号后的答案式即:

\[\sum_{j=0}^{k}\frac{j^k\cdot (-p)^j \cdot n^{\underline j}}{j!}f(j) \]

求解即可。

posted @ 2023-08-06 20:07  SError  阅读(61)  评论(0编辑  收藏  举报