广义串并联图
定义
广义串并联图是指一类满足任意
可以看出,一般的树或者仙人掌都是满足广义串并联图的性质的。且运用该算法的一些化简思想也是值得学习的。
性质
-
- 广义串并联图可以通过若干次删
1 度点,缩2 度点,复合重边最终变为一个单点。证明应该可以使用反证法,设每个点度数都至少为3 推导,具体证明可以看论文。
习题
2019 集训队互测 Day 3 公园
题目链接
例题。基本按照论文中的顺序,感觉是不错的引入顺序。
广义串并联图中化简问题三种手段删
我们先将一条边会带来的贡献扩展一下
删
对于一个叶子节点
当
那么可以视为
缩
假设
-
w_{0,0} = \max(w_{(u,x),0,0} + b_x + w_{(x,v),0,0}, w_{(u,x),0,1} + w_x + w_{(x,v),1,0}) -
w_{0,1} = \max(w_{(u,x),0,0} + b_x + w_{(x,v),0,1}, w_{(u,x),0,1} + w_x + w_{(x,v),1,1}) -
w_{1,0} = \max(w_{(u,x),1,0} + b_x + w_{(x,v),0,0}, w_{(u,x),1,1} + w_x + w_{(x,v),1,0}) -
w_{1,1} = \max(w_{(u,x),1,0} + b_x + w_{(x,v),0,1}, w_{(u,x),1,1} + w_x + w_{(x,v),1,1})
可视作删除
复合重边:
直接将对应边权相加即可,注意点对
没有修改的情况就可以按照上述方案缩图得到最终答案,接下来考虑有修改的情况。可以将图变化带来贡献变化建树,用矩阵维护带来的影响。动态
每次都把好端端的题做成 * 喂给人吃,不愧是某毒瘤出题人,代码天气好了再写。
SNOI2020 生成树
题目链接
设
删
缩
假设
-
f_0 = f_{(u,x),0} \times f_{(x,v),0} -
f_1 = f_{(u,x),0} \times f_{(x,v),1} + f_{(u,x),1} \times f_{(x,v),0}
可视作删除
复合重边:
-
f_0 = f_{i,0} \times f_{j,1} + f_{i,1} \times f_{j,0} -
f_1 = f_{i,1} \times f_{j,1}
JOI Open 2022 放学路
题目链接
按照广义串并联图的思想,对于除了
接着通过观察可以发现,如果我们将
删除一定不会经过的点可以通过在
证明可以先构造从
余姚中学 2019 联测 Day 1 有限空间跳跃理论
题目链接
求解无向图定向后为
常见方法是考虑每一次新加入一层出度为
设
缩
-
f = f_1f_2 -
g = g_1g_2 + 2(f_1f_2 + f_1g_2 + g_1f_2)
复合重边:
-
f = f_1f_2 + f_1g_2 + g_1f_2 -
g = g_1g_2
应该都比较好理解,最终只需在预处理是提前处理一下贡献。
UOJ 集训队互测 2021 逛公园
总结
广义串并联图实则上就是通过,删
参考
广义串并联图方法学习笔记
IOI2019集训队论文 -《公园》命题报告