新年的追逐战

研究两个图\(G1\)\(G2\)的乘积的连通块的性质(agc011c)
根据定义,两个点\((a,b),(c,d)\)连通的条件:存在\(a,b\)\(c,d\)之间长度为\(x\)的路径
考虑\(G1\)的每个连通块和\(G2\)每个连通块合并后结果:
有任一是孤立点:显然不会连出任何边。
两个非二分图:会发现在\(x\)足够大(大于两个图大小的最大值)时,奇,偶路径都存在,所以会合并成一个非二分图。
一个非二分图,一个二分图:在\(x\)足够大时只存在长为偶数的路径,所以会合并成一个二分图。
两个二分图:会合并成两个二分图。
所以我们只需要关心每个连通块是孤立点/非二分图/二分图。
考虑孤立点对答案的贡献。
假设\(G_i\)的孤立点的个数是\(a_i\),则新图中有\(\prod m_i-\prod a_i\)个孤立点。
这是因为正难则反原理,只有两个非孤立点图合并起来才是孤立点图。
\(i\)中一个点为孤立点的概率是其不向外面连任何边,是\((1-(\frac{1}{2})^{m_i-1})m_i\)
这也是由于正难则反原理。
考虑两个非孤立点图,设二分图/所有连通块数量为\((a_1,b_1),(a_2,b_2)\),根据前面的分析,合并后二分图/所有连通块的数目是\((a_1b_1+a_2b_2,a_1b_2+a_2b_1)\)
这长得很像fwt。
\((a_i,b_i)\)为一个图的二分图/所有连通块数量。
所以我们只需要知道\(a_i+b_i,a_i-b_i\)的期望即可。
连通图的生成函数可以通过解方程得到,是经典问题。
\(F(x)\)表示所有图的生成函数,\(G(x)\)表示连通图的生成函数。
\(F\)\(G\)的拼接,所以可以使用exp描述。
\(G\)解出\(F\)可以多项式ln。
\(H(x)= \sum_{i = 0}^{S} \sum_{j = 0}^{i} \frac{2^{j(i - j)}}{j!(i - j)!}\)
它的意义是:二分图的判定可以染色,可以枚举染色方法和连的边以生成二分图的拼接。
则借鉴之前从\(G\)解出\(F\),可以用ln解\(I\)\(I(x)=\ln(H(x))\)
\(H(x)\)可以用卷积,用CZT拆解\(j(i - j)\)即可。
时间复杂度\(O(n\log_2n)\)

posted @ 2021-03-13 20:24  celerity1  阅读(50)  评论(0编辑  收藏  举报