求 \(10^5\) 以内的所有贝尔数:将 \(n\) 个有标号的球划分为若干非空集合的方案数 Solution 非空集合的指数生成函数为 \(F(x)=e^x-1\) 枚举一共用多少个集合,答案就是求这些集合的组合(无顺序),于是 \(G(x)=\sum_{i=0}^{\infty} \frac{F^i(x)}{i!}=e^{F(x)}=e^{e^x-1}\) 其中,\([x^n]G(x)\) 即为将 \(n\) 个整数划分为若干个集合的方案数 #include <bits/stdc++.h>…
正题 题目链接:https://www.luogu.com.cn/problem/P5748 题目大意 求将\(n\)的排列分成若干个无序非空集合的方案. 输出答案对\(998244353\)取模. \(1\leq n\leq 10^5,1\leq T\leq 1000\) 解题思路 就是求划分数 分成\(i\)个集合的方案是\((e^x-1)^i\)所以答案的生成函数就是 \[\sum_{i=0}^{\infty}\frac{(e^x-1)^i}{i!} \] emmmmmmmmmmm...…
题意 一个有\(n\)个元素的集合,将其分为任意个非空子集,求方案数.集合之间是无序的,\(\{\{1,2\},\{3\}\}=\{\{3\},\{1,2\}\}\). 设\(f_n\)表示用\(n\)个元素组成的集合的个数,显然\(f_n=1\).设\(F(x)\)为\(f\)的指数型生成函数,那么\(F(x)=\sum_{i=1}\frac{x^i}{i!}\),\(F^i(x)\)的第\(n\)位就是\(i\)个元素个数之和为\(n\)的集合组合在一起的方案数. 设\(g_i\)为\(n=…
Description: \(1<=n,k<=1e5,mod~1e9+7\) 题解: 考虑最经典的排列dp,每次插入第\(i\)大的数,那么可以增加的逆序对个数是\(0-i-1\). 不难得到生成函数: \(Ans=\prod_{i=0}^{n-1}(\sum_{j=0}^ix^j)[x^k]\) \(=\prod_{i=1}^{n}{1-x^i\over 1-x}[x^k]\) 分母是一个经典的生成函数: \({1\over 1-x}^n=(\sum_{i>=0}x^i)^n=\sum…
题目大意 有两棵 \(n\) 个点的树 \(T_1\) 和 \(T_2\). 你要给每个点一个权值吗,要求每个点的权值为 \([1,y]\) 内的整数. 对于一条同时出现在两棵树上的边,这条边的两个端点的值相同. 若 \(op=0\),则给你两棵树 \(T_1,T_2\),求方案数. 若 \(op=1\),则给你一棵树 \(T_1\),求对于所有 \(n^{n-2}\) 种 \(T_2\),方案数之和. 若 \(op=2\),则求对于所有的 \(T_1,T_2\),求方案数之和. \(n\leq…
传送门 神仙题-- 考虑计算三个部分:1.\(n\)个点的森林的数量,这个是期望的分母:2.\(n\)个点的所有森林中存在最短路的点对的最短路径长度之和:3.\(n\)个点的所有路径中存在最短路的点对的个数之和,这个是用来计算需要取到\(m\)的点对的数量. 对于1,这个就直接对着树的数量的EGF做多项式exp即可.因为点之间有序所以用EGF,\(n\)个点的树的数量由Cayley定理就是\(n^{n-2}\). 对于3,考虑枚举一个连通块大小,那么这种连通块大小的所有树的存在最短路的点对之和就…
题意 题目链接 Sol 多项式exp,直接套泰勒展开的公式 \(F(x) = e^{A(x)}\) 求个导\(F'(x) = A(x)\) 我们要求的就是\(G(f(x)) = lnF(x) - A(x)\)的零点. 然后把\(F(x)\)看做变量\(A(x)\)看做长度(什么鬼啊qwq) \(G'(F(x)) = \frac{1}{F(x)}\) 然后就可以牛顿迭代啦 \[F(x) = F_0(x) - \frac{G(F_0(x))}{G'(F_0(x))}\] \[F(x) = F_0(x…
显然构造出生成函数,对体积v的物品,生成函数为1+xv+x2v+……=1/(1-xv).将所有生成函数乘起来得到的多项式即为答案,设为F(x),即F(x)=1/∏(1-xvi).但这个多项式的项数是Σvi级别的,无法直接分治FFT卷起来. 我们要降低多项式的次数,于是考虑取对数,化乘为加,得到lnF(x)=-Σln(1-xvi).只要对每个多项式求出ln加起来再exp回去即可. 考虑怎么对这个特殊形式的多项式求ln.对ln(1-xv)求导,得ln(1-xv)'=(1-xv)'/(1-xv)=-v…
题目大意:给你两个多项式$f(x)$和$g(x)$,满足$f(x)=\prod\limits_{i=1}^{n}(a_i+1)$,$g(x)=\prod\limits_{i=1}^{m}(b_i+1)$. 现在给你一个多项式$h(x)$,满足$h(x)=\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{m}(a_ib_j+1)$ 请输出多项式$h$的前$k$项,在模$998244353$意义下进行. 数据范围:$n,m≤10^5$. 我们现在有: $f(x)=\…
LINK:多项式 exp 做多项式的题 简直在嗑药. 前置只是 泰勒展开 这个东西用于 对于一个函数f(x) 我们不好得到 其在x处的取值. 所以另外设一个函数g(x) 来在x点处无限逼近f(x). 具体的 \(f(x) ≈ g(x)=g(0)+\frac{f^1(0)}{1!}x+\frac{f^2(0)}{2!}x^2+...+\frac{f^n(0)}{n!}x^n\) 牛顿迭代: 常用来求一个函数的零点:假设我们已经求得一个近似值x0 那么我们只需要过(x0,f(x0))这个点做函数图像…