【笔记】广义串并联图
定义,不存在 \(4\) 个点使得任意两点之间存在一条简单路径,且这些路径不在 \(4\) 个点之外的地方相交。
这样的图有一些性质。
边数 \(M\) 小于两倍点数 \(N\),且图为平面图。
这样的图可以通过删除度数为 \(1\) 的点,将度数为 \(2\) 的点连着的两条边缩成一条边,将重边复合成一条边这三种方式缩成 \(1\) 个点。
【例题】[SNOI2020] 生成树
仙人掌外加一条边,这样的图是广义串并联图。
我们记 \(f_e,g_e\) 表示选择 \(e\) 这条边,和不选 \(e\) 这条边的方案,然后我们按照上面三种方式缩成一个点得到最终答案。
如果是 \(1\) 度点,直接将 \(f\) 乘到答案中。如果是二度点,合并两条边 \((f_u,g_u),(f_v,g_v)\to (f_u\times f_v,f_u\times g_v+g_u\times f_v)\)。
同理,复合两条重边 \((f_u,g_u),(f_v,g_v)\to (f_u\times g_v+g_u\times f_v,g_u\times g_v)\)。
用队列和 map 维护即可,时间复杂度 \(\mathcal{O}(M\log M)\)。