题解 P5748 【集合划分计数】
iostream
2019-12-05 21:46:09
[我的博客](https://www.cnblogs.com/bestwyj/p/11178659.html)
题意就是求 $10^5$ 以内所有贝尔数,$bell(n)$ 即将 $n$ 个有标号的球划分为若干集合的方案数。
我们设一个非空集合的指数生成函数为 $F(x)$,设答案的指数生成函数为 $G(x)$;
枚举一共用多少个集合,将这些集合组合起来,集合之间是不可区分的。
$$G(x)=\sum_{i=0}^\infty \frac{F^i(x)}{i!}$$
也就是一个 多项式exp 的形式
$$G(x)=e^{F(x)}$$
而显然有非空集合的指数生成函数
$$F(x)=e^x-1$$
那么我们就可以求出贝尔数的指数生成函数 $G(x)$ 了,注意答案乘上 $n!$。