广义串并联图

我们称「不存在同胚于 \(K4\) 的子图」的无向图为广义串并联图,即不存在四元组 \((u_1,u_2,u_3,u_4)\) 满足存在 \(6\) 条路径使每两个点互相到达,并且这 \(6\) 条路径之间没有交点。

大部分常见的简单图模型都是广义串并联图,如菊花、树、简单环、基环树、仙人掌等。

菊花、树是广义串并联图的证明:根据点集 \(lca\) 的性质,至少有 \(2\) 条路径满足路径起始点的 \(lca\) 相同,即 \(lca(u_a,u_b)=lca(u_c,u_d)\),这说明它们的路径有交。

简单环是广义串并联图的证明:考虑环上 \(4\) 个点,易证只存在 \(4\) 条路径使环上相邻两点互相到达且路径无交。

基环树是广义串并联图的证明:考虑拆成基环和树,结合前两部分的证明即可说明正确性。

仙人掌是广义串并联图的证明:根据仙人掌的性质,每条边至多存在于一个简单环中,不难可以推出仙人掌的点双必然为简单环的形式,结合基环树、简单环的证明即可说明正确性。

广义串并联图一般涉及到三种操作:删 \(1\) 度点(去断路)、缩 \(2\) 度点(消串联)、叠合重边(消并联)。

\(1\) 度点:将度数为 \(1\) 的点以及出边从原图中删去,即针对树的删叶子。

\(2\) 度点:将度数为 \(2\) 的点以及两条出边从原图中删去,并添加一条连接两条出边的两外两点的边,即针对仙人掌的缩简单环。具体来说,对于 \(deg_u=2\) 且有边 \((u,x),(u,y)\),考虑删除这两条边并添加边 \((x,y)\)

叠合重边:将两条重边从原图中删去,并添加一条新边,即将重边进行叠合。

其中在进行上面三种操作的时候,当前时刻的广义串并联图的每条边都是原图的一个子图。

广义串并联图的优美结论是,其必然能通过删 \(1\) 度点、缩 \(2\) 度点、叠合重边操作若干次后,变成一个只有单个点的新图。由于证明比较复杂,这里不再赘述。可以参考论文《公园》命题报告。

在解题过程中,如果我们遇到了对于一般图不太好处理的题,可以考虑观察图的性质,往往广义串并联图有着更好的做法。下面将给出例题。

这里需要提及到的是,广义串并联图的方法在某些一般图的题目中也适用。在实际解题的过程中,如果一个一般图的 \(|E|-|V|\le k\),其中 \(k\) 是一个非常小的数,可以通过上面三种操作简化原图直到 \(|V|\le 2k,|E|\le 3k\),然后可以直接暴力。

证明:考虑 \(|E|-|V|\) 始终不增,且广义串并联图的操作在原图中不使用当且仅当所有点的度数都 \(\ge 3\),所以 \(3|V|\le 2|E|\)\(|V|\le 2k,|E|\le 3k\)

例1:P6790 [SNOI2020] 生成树

题意:给定无向连通图 \(|E|,|V|\le 10^5\),求生成树个数。保证图是由一棵仙人掌加上一条边构成。

题解:直接做很难做到优秀复杂度,无法硬上矩阵树定理。考虑原图的特殊性质,一棵仙人掌加上一条边,不难猜想原图是广义串并联图。考虑如何证明,根据之前的结论,仙人掌选出四个点后至多有四条连接两点的路径不交,加上一条边后,至多有五条连接两点的路径不交,所以猜想正确。

既然我们已知原图是广义串并联图,考虑利用那三种操作缩图。由于生成树的不同取决于选择的边集,不难想到把计数挂在边上,对于每一条边,令 \(f_i,g_i\) 分别代表选不选这条边对答案的贡献。

对于删 \(1\) 度点,我们令 \(ans=ans\times f_e\)

对于缩 \(2\) 度点,我们令 \(f_{e'}=f_{e_1}\times f_{e_2}\)\(g_{e'}=f_{e_1}\times g_{e_2}+g_{e_1}\times f_{e_2}\)。这里不算 \(g_{e_1}\times g_{e_2}\) 是因为生成树不可能同时不选这两条边。

对于叠合重边,我们令 \(f_{e'}=f_{e_1}\times g_{e_2}+g_{e_1}\times f_{e_2}\)\(g_{e'}=g_{e_1}\times g_{e_2}\)。这里不算 \(f_{e_1}\times f_{e_2}\) 是因为生成树不可能同时选这两条边。

直接模拟 bfs,队列里维护所有 \(deg\le 2\) 的点即可。使用 unordered_map 等方法精细处理可理论上做到线性。

例2:P8426 [JOI Open 2022] 放学路 / School Road

题意:给定无向连通图 \(|E|\le 10^5,|V|\le 2\times 10^5\),边权均为正。求是否存在一条 \(1\)\(n\) 的简单路径,使得该路径长度大于最短路。

题解:一眼感觉这个条件很稀疏啊,稍微复杂一点的图基本就能满足要求。我们不妨先钦定原图是点双。

部分分中有一个 \(|E|-|V|\le 13\),这启示我们考虑广义串并联图。这个部分分只需按照上面叙述的缩图方法暴力即可,考虑更加一般的情况。假如原图存在一个同胚于 \(K4\) 的子图,令其为 \((a,b,c,d)\),不妨先假设原图答案为不存在。取出两条路径,由于不存在一条大于最大路的简单路径,所以两条不同路径的长度相等,取出这样的路径后可以得到 \(w(a,b)=w(a,d)+w(d,b)\)\(w(a,d)=w(a,b)+w(b,d)\),可以发现 \(w(b,d)=w(a,b)-w(a,d)=w(a,d)-w(a,b)=0\),与边权为正矛盾。因此若原图不是广义并串联图则一定有解。

考虑原图是广义串并联图的情况。仍然考虑删 \(1\) 度点、缩 \(2\) 度点、叠合重边。删 \(1\) 度点对答案没有影响,这里注意一下不能删 \(1\)\(n\),缩 \(2\) 度点时,我们将新边边权设为原来的两条边边权之和,叠合重边的时候,我们可以将边权设为负无穷。

对于最后的答案,我们考虑是否只剩 \(1,n\) 且仅存在一条边、这条边是否为负无穷即可。

现在考虑如何处理非点双的情况,经过大量手模、感性猜测可以得出,若 \(1\)\(n\) 点双连通可以直接缩、否则多连 \((1,n,w(1,n))\) 不会影响答案并可以满足点双连通,按照上面的方法处理即可,这里不再赘述。详细的证明比较冗余、复杂。

posted @ 2025-08-06 15:50  NagasakiSoyo  阅读(110)  评论(0)    收藏  举报