闲话 23.2.15
闲话
vscode 被我调 ntt 搞炸了 所以这篇博客直接在 cnblogs 上写了
寄(
update:不是 vscode,是除了浏览器外的部分
今日推歌:一人行者 - ilem feat. 心华
我知道你可能想说什么但是一人行者是真的很好听
所以今天我脑子里一直在循环播放 所以我推这首歌
而且感觉这歌能比较好的刻画一部分人群 反正我挺有感触的
所以听听?
虽然这首歌是 ilem 老师 16 年写的 但是确实很好听
?为何我点双计数的提交记录里谁的代码都看不了
连通图计数
众所周知有标号无向图是由有标号无向连通图拼成的。假设有标号无向图的 egf 是 \(F\),则有标号无向连通图的 egf 就应当是 \(\ln F\),由于有标号 \(\text{Set}\) 构造的逆在 gf 上就是 \(\ln\)。\(F\) 的构造是简单的。
下面记有标号有根无向连通图的 egf 为 \(C\)。
假设有根无向边双连通图的 egf 是 \(B(x)\)。
考虑如何构造一个有根无向连通图。我们可以枚举一个极大边双联通分量的大小 \(k\),以及连在它上面的无向联通子图。前半部分的方案数是 \(B[k]\),后半部分的方案数的 egf 是 \(\exp(kC(x)) = \left(\exp C(x)\right)^k\)。这也就导出
我们若设 \(F(x) = x\exp C(x)\),则有
这启发我们通过拉格朗日反演提取系数:
这就有 \(O(n\log n)\) 提取单项的方式。记得除 \(n\)。
假设有根无向点双连通图的 egf 是 \(D(x)\)。
考虑如何构造一个有根无向连通图。由于根可能在多个点双连通分量内,考虑这些分量的交有且仅有根这一个节点,我们不妨求出删掉根后其中一个点双连通分量所在连通块的 egf,最后作 \(\text{Set}\) 构造再加入根即可。
下面只考虑 \(n > 1\) 的情况,这保证了每个点双连通分量的大小定大于等于 \(2\)。
我们可以枚举点双连通分量的大小 \(k + 1\)。删除根后点双联通分量的大小即为 \(k\)。如果删掉这个点双连通分量中所有边(而不是点),我们能得到 \(k\) 个连通块,它们的 egf 都是 \(C(x)\)。因此其中一个点双联通分量所在连通块的 egf 即为
这也就导出
稍加变形得到
我们若设 \(F(x) = \ln \dfrac{C(x)}{x}\),则有
这启发我们通过拉格朗日反演提取系数:
这就有 \(O(n\log n)\) 提取单项的方式。
最终可以发现两个答案的形式是相似的。
以下是博客签名,与正文无关。
请按如下方式引用此页:
本文作者 joke3579,原文链接:https://www.cnblogs.com/joke3579/p/chitchat230215.html。
遵循 CC BY-NC-SA 4.0 协议。
请读者尽量不要在评论区发布与博客内文完全无关的评论,视情况可能删除。