洛必达法则

若函数满足以下条件:

  • 的某空邻域内两者均可导,且
  • ,其中可为非正常极限。

通俗地说,如果处的极限都是,那么处的极限可以通过他们的导数来求。

多项式除法

给出多项式,求出,满足,且。注意这里不是模意义下。表示多项式最高次项的次数。

定义一个变换

该变换的实质是把多项式的系数翻转过来了。代入得到

由于,那么不妨设。稍作变换得到

那么容易发现,在模意义下,就没了:

这样我们可以求出

由于,因此。于是

这样使用多项式求逆即可得到,反代回去可求出

时间复杂度

多点求值

给出,求,其中同阶。

考虑分治。设

容易发现。那么构造。显然有满足。因此左边递归下去求值。右边同理。

时间复杂度。在实现的过程中需要预先把所有的函数都存下来,因此空间复杂度是

快速插值

给出。那么我们可以唯一确定一个次多项式。求出这个多项式。

用拉格朗日插值可以得到

分上下两部分处理。

第一部分

考虑对于每个求出

。那么可以分治 NTT 计算出来,时间复杂度

容易发现。但是如果我们直接做次多项式求逆的话复杂度就不对了。

利用洛必达法则,设。因为,且两个函数都在邻域内可导,因此得到

那么对求出在处的点值即可。这样就求出了所有。时间复杂度

第二部分

求出后,原式可以表示为

同样考虑分治,设

那么如果我们求出了这 4 个多项式,那么可以得到。两边递归求解即可。

时间复杂度,空间复杂度,因为多点求值带一个的空间复杂度。而第二部分的计算是可以把空间减小到的,不过直接动态开空间也只增大了空间常数,没有改变空间复杂度。

多项式复合逆

对于两个多项式函数,如果,称互为复合逆

容易证明。但是多项式复合逆没有时间复杂度的做法。但可以使用拉格朗日反演在的时间内计算出某一项。

拉格朗日反演

对于两个多项式函数,如果,那么

还有一个扩展形式:

其中是另一个多项式函数。

大朋友与多叉树

题意:求有多少棵有根树,满足有个叶子结点,内部结点的儿子数都属于集合,且。注意,儿子之间是有顺序的。

例如当时:

polynomial-pro1

定义两个普通生成函数

其中的答案。考虑根结点的孩子数为,此时方案数的生成函数显然为。从这个思路出发,可以得到

加上一个是考虑的情况。可以得到,因此互为复合逆。

使用拉格朗日反演得到

在模意义下直接求值即可。一个技巧是把后面的式子转化为的形式,这样常数项为 1,可以多项式来求幂。

时间复杂度

仙人掌计数

仙人掌:如果一个简单无向连通图的任意一条边最多属于一个简单环,我们就称之为仙人掌。所谓简单环即不经过重复的结点的环。

个点带标号的仙人掌数量。

考虑有根仙人掌的指数生成函数为。那么求出来后把方案数除以就是答案。我们可以将仙人掌的构成分成两种部分:

  1. 从根结点连出去的独立边,相当于接一个仙人掌出去。一条边连出去的生成函数是,多条边之间不区分顺序,因此方案数是
  2. 包含根结点的一个简单环,环上除了根结点之外的每个结点都挂一个仙人掌。由于我们要考虑环上结点之间的顺序,因此假设环长为,那么个仙人掌按序排列的生成函数是。考虑到是一个环,因此每个排列被正着反着各算了一次,因此长度为的环的生成函数是。那么一个环的生成函数就是。多个环之间是不区分顺序的,因此多个环的方案数是

综上,环和独立边互不相关,总方案数是,再加上根结点本身得到

稍作整理得到

考虑牛顿迭代法。

方法一

那么显然我们要求。应用牛顿迭代得到

求导得到

如何理解式子中的?我们把它理解为与不相关的一个常量即可。常量的导数是

最后得到

方法二

方才的式子可以变换为

因此设

同样的方法,对求导得到

因此可以得到

两种迭代方式是等价的。由于是 EGF 最后别忘了乘上

代码

点双连通图计数

如果一个无向连通图删去任意一个点都仍然是连通的,我们就称为点双连通图。

个点带标号点双连通图的个数。

同样地,设表示个点的点双连通图的 EGF。设表示个点有根连通图的 EGF。

表示带标号无向图数的生成函数,那么得到

我们考虑用表示。考虑有根无向图的包含根结点的点双连通分量。假设大小为,那么除了根结点之外的点都可以挂一个有根连通图,因此方案数是。对于个不区分顺序的有根连通图的根结点,再加上根结点,因此一个点双连通分量的方案数是。多个点双连通分量之间不区分顺序,因此总方案数是。再加上根结点本身得到

然而这个方程无法牛顿迭代。设的复合逆是,那么得到

据说使用扩展拉格朗日反演可以解决。