一些生成函数的计数问题的做法
背包计数
至于
或者用
得到
调和级数处理再
复杂度
类似的生成函数为
后面的没区别
类似生成函数为
两部分也没区别
树的计数
设
考虑由于无标号有根
那么对于子树每种大小相同形态无法区分
所以考虑所有大小为
于是
同时取对后求导
考虑对于
分治
复杂度
另外有一种
记
即上面最开始那玩意
那么就是
考虑用牛顿迭代求
已知
求
那么就是
考虑对于
由于是
那么
那么就是
复杂度就是
考虑设
考虑容斥,对于一棵树看做用重心为根
减去所有其他的
但对于
这时候贡献是
这个直接一次卷积即可
前面求
如果是用牛顿迭代就是
例题:
洛谷-无标号无根树计数
有标号 计数
设
枚举出度为
此时度数为
但由于剩下的点也有出度为
容斥即可
那么
复杂度
考虑用
由于
有
那么
变形后原
写成生成函数就是
注意递推式
多项式求逆即可
模
考虑图必须弱联通
可以先求出
考虑枚举不连通时一号点所在连通块的大小减去
则
复杂度
考虑移项后有
设
那么就是
则
多项式求逆即可
复杂度
仙人掌计数
这个是有标号的
考虑先算有根的情况
考虑一个点可能在某些环里,也有可能与子仙人掌相连
把环上这个点删去后会有很多子仙人掌
于是考虑
对于环正反顺序是相同的
所以得到
考虑牛顿迭代
已知
求
那么
对于
这样的函数对 求导时将 看做常量
于是
复杂度
无向连通图计数
考虑任意图是由无向连通图
而任意图的个数为
直接求
点双连通图计数
有标号
传送门
先求出
设其
设
考虑对于一个无向有根连通图
根可能在多个点双内
删去根后会形成多个连通块
考虑将根以及所在的所有点双的边删去
则每个连通块都会变成若干个连通图
那么一个连通块的生成函数
枚举连通图个数就是
设
就有
那么
设
那么有
设
则
由拓展拉格朗日反演得
多项式
复杂度
边双连通图计数
有标号
传送门
仍然设
设
考虑对于一个图
枚举根所在边双大小
删去后会剩下很多个无向联通子图
每个子图的根可以任意连向边双上任意一个点
那么就可以得到
设
那么
取复合逆
复杂度