题解 P5748 【集合划分计数】

iostream

2019-12-05 21:46:09

Solution

[我的博客](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!$。