广义串并联图学习笔记

主要内容

定义

对于一个无向图 \(G\),若可以通过收缩操作得到一个点,则称原图 \(G\) 是广义串并联图。其中收缩操作为:

  1. \(1\) 度点。即将度数为 \(1\) 的点和它的所有边删去。
  2. \(2\) 度点。对于一个二度点 \(w\),记其连边对应点为 \(u,v\)。则删去点 \(w\) 和它的所有连边并添加 \(1\)\(u,v\) 之间的边。
  3. 合并重边。把若干条相同的边缩成一条边。

或者说:

对于 \(G\) 中任意 \(4\) 个节点,都不存在 \(6\) 条互相没有公共边的路径连接这 \(4\) 个点中每一对点。

一些性质

  1. 广义串并联图不存在同胚于 \(K_4\) 的子图(但不存在同胚与 \(K_4\) 的子图不一定是广义串并联图,如 \(3 \times 3\) 的网格图)。
  2. 对于一个无向联通图 \(G = (V,E)\),记 \(k = E - V\)。执行完收缩操作后得到的新图 \(G'=(V',E')\) 一定满足 \(V' \le 2k,E'\le 3k\)

应用

P6790 [SNOI2020] 生成树

仙人掌是广义串并联图,因为对于任意 \(4\) 个点,若能找出 \(5\) 条互不相交的路径,则可以看作是一个 \(K_4\) 去掉一条边的形式,而这样一定有 \(2\) 个点属于至少 \(2\) 个环,显然不满足仙人掌定义。

对于这道题,因为是仙人掌加一条边,所以最多有 \(5\) 条互不相交的路径,也是广义串并联图。

考这种题目有个明显的特征:转移和顺序几乎无关。那么就应该能用给广义串并联图收缩的过程 DP 了。

具体地,定义状态函数 \(f_{u,v,0/1}\) 表示收缩到某个时刻,\(u,v\) 之间存在边,且 \(u,v\) 不通联通或联通的方案数。

初始 \(f_{u,v,0/1}=1[(u,v)\in E]\)

维护一个度数不超过 \(2\) 的点的队列,考虑现在队头的点是 \(w\)

  1. \(w\)\(1\) 度点。因为最后必须联通,所以 \(w\) 应当和这条边对应的那个点 \(u\) 相连。\(ans \gets ans \times f_{u,w,1}\)。其中 \(ans\) 为最后的答案,初始为 \(1\)

  2. \(w\)\(2\) 度点。记和它相连的点为 \(u,v\)。首先 \(w\) 需要和 \(u,v\) 其中至少一个联通。

    1. \(u,v\) 之前没有直接相连。

      \(f_{u,v,0}\gets f_{u,w,1}\times f_{w,v,0}+f_{u,w,0}\times f_{v,w,1}\)

      \(f_{u,v,1}\gets f_{u,w,1}\times f_{w,v,1}\)

    2. \(u,v\) 之前有直接相连。

      \(f_{u,v,0}\gets f_{u,v,0}\times (f_{u,w,1}\times f_{w,v,0}+f_{u,w,0}\times f_{v,w,1})\)。因为这两条边缩之前的子图是无交的,所以相互独立。

      \(f_{u,v,1}\gets f_{u,v,1}\times(f_{u,w,1}\times f_{w,v,0}+f_{u,w,0}\times f_{v,w,1})+f_{u,v,0}\times (f_{u,w,1}\times f_{w,v,1})\)

时间复杂度 \(O(n\log n)\)

BZOJ4316 小 C 的独立集

考虑定义 \(f_{u,v,0/1,0/1}\) 表示到某个时刻 \(u,v\) 直接相连时,已知选择 \(u\)\(v\) 的情况下 \(u,v\) 这条边在原图所指子图(包括 \(u,v\))的最大独立集大小。定义 \(g_{u,0/1}\) 表示在某个时刻,已知选择 \(u\) 的情况下,和 \(u\) 有关的 \(1\) 度点以及和 \(u\) 的边在原图所指子图(包括 \(u\))的最大独立集大小。

这么定义一个 \(g\) 是因为删 \(1\) 度点的时候不能直接统计给答案,而依赖 \(u\) 的选择,所以在 \(u\) 转移的时候带上那些被删的点就行了。

初始化 \(g_{u,1}=1,g_{u,0}=0\)。当 \((u,v)\in E\)\(f_{u,v,0,0}=0,f_{u,v,0,1}=1,f_{u,v,1,0}=1,f_{v,u,1,1}=-\infin\)

  1. \(1\) 度点。记当前点为 \(w\),另一个点为 \(u\)

    \(g_{u,x} \gets g_{u,x}+\max(f_{w,u,y,x}+g_{w,y}-[y=1]-[x=1])\)

  2. \(2\) 度点。记当前点为 \(w\),另外两个点为 \(u,v\)

    1. \(u,v\) 不直接相连。

      \(f_{u,v,x,y}\gets \max (f_{u,w,x,z}+f_{w,v,z,y}+g_{w,z}-2[z=1])\)

    2. \(u,v\) 直接相连。

      \(f_{u,v,x,y}\gets f_{u,v,x,y} + \max (f_{u,w,x,z}+f_{w,v,z,y}+g_{w,z}-2[z=1]-[x=1]-[y=1])\)

记最后剩下的点为 \(x\)。则答案为 \(\max g_{x,y}\)。时间复杂度 \(O(n\log n)\)

P4426 [HNOI/AHOI2018] 毒瘤

小 C 的独立集那样做,最后剩下不超过 \(20\) 个点 \(30\) 条边,然后暴力枚举。

posted @ 2026-06-06 16:37  harmis_yz  阅读(20)  评论(0)    收藏  举报