【题解】P16207 点双连通生成子图计数
令集合幂级数 \(C\) 表示连通子图的方案数,\(B\) 表示点双的方案数。
令集合幂级数 \(B^{\bullet}_k\) 表示圆方树的方案数,我们规定根是 \(k\),只有 \(\le k\) 的可以是割点。若没有 \(k\in S\) 规定这个位置填 \([x^S]B^{\bullet}_k=[x^S]B^{\bullet}_{k-1}\)。
那么有 \([x^S]B^{\bullet}_k=\sum_{\cup T_i=S\setminus k}\prod_{i} [x^{T_i\cup\{k\}}]B^{\bullet}_{k-1}\),而我们知道 \(B^{\bullet}_0=B,B^{\bullet}_n=C\)。
从 \(k=n\) 往小递推,那么每次做 ln 然后给集合幂级数加个 \(k\) 上去就好了,而不包含 \(k\) 的直接下传,复杂度 \(O(2^nn^3)\)。
浙公网安备 33010602011771号