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\) 个集合的方案数。
进行 \(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}\)
证明这个式子可以直接展开:
可证上式。
继续往下做:
\[\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!}
\]
即第二类斯特林数的通项公式。
求出所有的 \(\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)\).
求
\[\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)\).
与第一题不同于 \(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)
\]
求解即可。