将容斥系数隐含在式子中的方法
本文设表示生成函数的指数生成函数。
给定一个数,以及权值为的个点,对于,设,求满足的无向图个数。
最大值为不好直接考虑,先来一波前缀和,求的无向图个数。那么就是要求所有权值的点不能单组组成连通块。应用一般的容斥方法,统计包含某个特定的仅由权值的点构成的连通块(称为非法连通块)作为子集的方案,这个方案的贡献是。因为对于一个恰好含有个非法连通块的方案,它的贡献是。
那么,对于特定的,要统计的无向图个数,可以先枚举之前所述的,再枚举这个非法连通块的总点数,用和类似的方法统计总数。则可以写成:
其中表示个点组成的无向连通图的方案数的生成函数,表示个点组成的无向图的方案数的生成函数。进一步转化式子:
我们考虑,因此,因此原式可转化为:
显然可以直接求出,再利用多项式求逆求出,并令,则原式可转化为卷积形式,计算即可。
本题不需要什么黑科技只要求逆就好了,真是清真呢。
回顾一下,之前的推导最终转化成了式这样简单的形式,可以思考一下这一式子是否有直接的组合意义。该式的意义就在于,之前所说的容斥系数在这里并没有显式的表现出来,而是隐含在了的系数中。将容斥系数隐含在式子中后,我们可以在外层直接枚举与容斥系数没有直接关系的,也就是非法连通块的总点数,从而自动达到容斥的目的。这样的将容斥系数拆解到式子中的方法在一些组合计数问题中有时会出现,比如的最后一题。
当然,正如之前的推导所示,思路比较直接的方法在本题也能得到同样的结果。不过,如果在做组合计数时有意识的利用该方法变形,也可以大大简化思路,甚至做到直接推导很难得到的结果。
本题是我以前和一个现在已经是集训队大佬的假雪菜同学一起原创的,但这股套路的气息让我感觉它说不定已经在哪里出现过了。无论如何,如果这篇文章对还未退役的你有帮助的话,也不枉我这只退役狗在午休的时间狂码了。不过,写这篇文章主要还是因为我比较享受这个过程本身呢~