广义串并联图学习笔记
主要内容
定义
对于一个无向图 \(G\),若可以通过收缩操作得到一个点,则称原图 \(G\) 是广义串并联图。其中收缩操作为:
- 删 \(1\) 度点。即将度数为 \(1\) 的点和它的所有边删去。
- 缩 \(2\) 度点。对于一个二度点 \(w\),记其连边对应点为 \(u,v\)。则删去点 \(w\) 和它的所有连边并添加 \(1\) 条 \(u,v\) 之间的边。
- 合并重边。把若干条相同的边缩成一条边。
或者说:
对于 \(G\) 中任意 \(4\) 个节点,都不存在 \(6\) 条互相没有公共边的路径连接这 \(4\) 个点中每一对点。
一些性质
- 广义串并联图不存在同胚于 \(K_4\) 的子图(但不存在同胚与 \(K_4\) 的子图不一定是广义串并联图,如 \(3 \times 3\) 的网格图)。
- 对于一个无向联通图 \(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\):
-
\(w\) 是 \(1\) 度点。因为最后必须联通,所以 \(w\) 应当和这条边对应的那个点 \(u\) 相连。\(ans \gets ans \times f_{u,w,1}\)。其中 \(ans\) 为最后的答案,初始为 \(1\)。
-
\(w\) 是 \(2\) 度点。记和它相连的点为 \(u,v\)。首先 \(w\) 需要和 \(u,v\) 其中至少一个联通。
-
\(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}\)。
-
\(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\) 度点。记当前点为 \(w\),另一个点为 \(u\)。
\(g_{u,x} \gets g_{u,x}+\max(f_{w,u,y,x}+g_{w,y}-[y=1]-[x=1])\)。
-
删 \(2\) 度点。记当前点为 \(w\),另外两个点为 \(u,v\)。
-
\(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])\)。
-
\(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\) 条边,然后暴力枚举。

浙公网安备 33010602011771号