题目:
分析:
对于一个确定的生成子图,很明显是在一个连通块上走,走完了再跳到另一个连通块上,假设连通块个数为cnt,那么答案一定是$min(a_{cnt-1},a_cnt,..,a_{n-1})$
那现在的问题就是如何求出对于原图而言,连通块个数分别为1,2..n的生成子图的个数
我们去考虑每条边的贡献
在一个仙人掌上只有树边和回路上的边,对于树边如果删除那么肯定连通块个数+1,对于回路上的边,删除一条边不影响,再后面每删除一条边连通块个数+1
我们可以写出它们的生成函数,然后乘起来
对于树边的生成函数明显是$1+x$
对于长度为k的回路,生成函数是$1+\binom{k}{1}+\binom{k}{2}x+\binom{k}{3}x^2+...+\binom{k}{k}x^{k-1}$
然后将它们都乘起来就行了,但这样会TLE
最坏的情况是$(1+x)^n$,这样相当于退化成$O(n^2logn)$,这是因为每次拿一个低阶多项式和一个高阶多项式相乘很浪费时间
可以采取启发式合并,类似合并果子,每次取阶数最小的两个多项式进行NTT相乘,这样时间复杂度就是$O(nlog^2n)$的了
时间: 2024-10-25 13:20:36