第二类斯特林数.
给定 $n\le 10^9,k\le 5000$ ,求 $\sum_{i=0}^n \binom n i i^k$ ,答案对 $10^9+7$ 取模.
把后面的 $i^k$ 用第二类斯特林数展开成组合数的形式.
$$
\begin{aligned}
ans&=\sum_{i=0}^n \binom n i i^k \\
&=\sum_{i=0}^n \binom n i \sum_{j=1}^k {k\brace j} i^{\underline j} \\
&=\sum_{i=0}^n \binom n i \sum_{j=1}^k {k\brace j} \binom i j\cdot j! \\
&=\sum_{j=1}^k {k\brace j}\cdot j!\sum_{i=0}^n \binom n i\binom i j
\end{aligned}
$$
需要对 $\binom n i \binom i j$ 求和,考虑组合意义,可以看成每次从 $n$ 个数中选出若干个数,一共选了 $2$ 次, $2$ 次都被选中的有 $j$ 个.
那么我们可以先找出哪 $j$ 个数 $2$ 次都被选,其他数可以被选 $0$ 次,也可以被选 $1$ 次,得到 $\sum \binom n i \binom i j=2^{n-j}\binom n j$ .
代入得到
$$
ans=\sum_{j=1}^k {k\brace j}\cdot j!\cdot 2^{n-j}\binom n j
$$
$O(k^2)$ 预处理出所有的 $k\brace j$ 即可算出答案.
1 | //%std |