当前位置: 首页 > news >正文

广义串并联图方法

广义串并联图

本文中默认无向图是连通的。不连通的图会特别指出。

若无向图 \(G\) 不存在同胚于 \(K_4\) 的子图,则称 \(G\) 是广义串并联图。

显然,树、基环树、仙人掌都是广义串并联图。

广义串并联图方法

对无向图 \(G\) 执行下面三个操作:

  • 删一度点:若 \(u\) 的度数为 \(1\),则把 \(u\) 和与之相连的边删除。
  • 缩二度点:若 \(u\) 的度数为 \(2\),设与之邻接的点为 \(v,w\),则把 \(u\) 和边 \((u,v),(u,w)\) 删除,添加一条边 \((v,w)\)
  • 叠合重边:若存在两条边 \((u,v)\),删除其中一条。

称为广义串并联图方法。

广义串并联图方法可以通过类似于拓扑排序的方式实现。

我们不加证明地给出以下结论:

  • \(G\) 是广义串并联图,则对其应用广义串并联图方法可以将其缩为一个点。
  • \(G\) 是有 \(n\)\(m\) 边的一般无向图,设 \(k=m-n\),则对其应用广义串并联图方法可以将其缩为 \(n'\le 2k,m'\le 3k\) 的新图。

第二个结论常用于题目保证 \(k\) 很小的情况。由此可以看出,广义串并联图方法并不局限于广义串并联图使用。先将 \(k\) 较小的图的点数和边数缩小到 \(O(k)\) 量级再跑爆搜或者状压 DP 也是一个很常用的套路。

在应用广义串并联图方法缩图的过程中,常常根据题意在点或边上维护 DP,在删一度点、缩二度点、叠合重边时进行转移。

例题:P6790 [SNOI2020] 生成树

显然,无向图 \(G\) 是广义串并联图。

\(f_{(u,v),0/1}\) 表示在不考虑其他边的情况下,\((u,v)\) 这条边不选/选的方案数。

初值是 \(f_{(u,v),0}=f_{(u,v),1}=1,\forall(u,v)\in V\)\(\textrm{ans}=1\)

接下来考虑三种操作时的转移。

删一度点:设一度点为 \(v\),邻接点为 \(u\)。要选出生成树出来,那么 \((u,v)\) 这条边必须选,直接把 \(f_{(u,v),1}\) 乘到答案里。

\[\textrm{ans}\gets\textrm{ans}\times f_{(u,v),1} \]

缩二度点:设二度点为 \(v\),邻接点为 \(u,w\)。要得到生成树,\((u,v),(v,w)\) 不能都不选(不然 \(v\) 就不连通了),两条边都选才相当于选了边 \((u,w)\)

\[\begin{aligned} f_{(u,w),1}&\gets f_{(u,v),1}\times f_{(v,w),1}\\ f_{(u,w),0}&\gets f_{(u,v),1}\times f_{(v,w),0}+f_{(u,v),0}\times f_{(v,w),1}\\ \end{aligned} \]

叠合重边:设有两条 \((u,v)\) 边,记作 \((u,v)_1\)\((u,v)_2\)。要得到生成树,这两条边最多选一条(不然就有重边了),两条边都没选才相当于没选 \((u,v)\)

\[\begin{aligned} f_{(u,v),1}&\gets f_{(u,v)_1,1}\times f_{(u,v)_2,0}+f_{(u,v)_1,0}\times f_{(u,v)_2,1}\\ f_{(u,v),0}&\gets f_{(u,v)_1,0}\times f_{(u,v)_2,0}\\ \end{aligned} \]

缩成一个点时 \(\textrm{ans}\) 即为答案。

习题:P10779 BZOJ4316 小 C 的独立集

已 AC,待补充。

习题:P4426 [HNOI/AHOI2018] 毒瘤

已 AC,待补充。

习题:P10044 [CCPC 2023 北京市赛] 最小环

已 AC,待补充。

习题:P8426 [JOI Open 2022] 放学路 / School Road

已 AC,待补充。

习题:P11832 [省选联考 2025] 图排列

不会做。

http://www.jsqmd.com/news/1230531/

相关文章:

  • 1.20 LeetCode总结(基本算法)_模拟类
  • 深入解析EDMA/QDMA通道机制:从事件触发到中断处理的嵌入式数据搬运实战
  • AM275x OTFA硬件安全模块配置实战:从寄存器解析到安全启动集成
  • 必须掌握的GEO排名稳定技巧
  • DevEco Code Plan+Build模式:审方案再执行,提升开发效率与质量
  • 小白程序员必看:从入门到精通大模型,开启AI全栈新篇章
  • React 17核心特性与渐进式升级指南
  • 2026年防火涂料知名十大品牌梳理 拓展伟业等企业核心优势盘点 - Fan_00
  • ChatGPT学术插件失效?DeepSeek-R1+Semantic Scholar联调失败?AI文献检索避坑手册(附可复现Prompt库)
  • libgit2 v1.9.6 发布:修复 Android 系统 segfault 等重要错误
  • 扬州改灯哪家专业?本田车主必看的专业改灯店推荐 - Ayu8888
  • 告别DLL报错:详解Visual C++运行库一键修复原理与脚本实现
  • UE性能优化全攻略:从CPU/GPU瓶颈分析到移动端专项优化
  • OpenSSL HollowByte 漏洞:11 字节载荷即可瘫痪全球服务器内存
  • Unity DOTS ECS万级实体性能优化实战:从传统OOP到数据导向架构迁移
  • 工装夹克、职业单西口袋工艺自动化改造深度解析
  • 小米MIMO Code开源AI编程助手评测与使用指南
  • NumPy核心原理与高效科学计算实战指南
  • Obsidian 不想花钱怎么同步?用Nutstore Sync同步插件最省心
  • 秘塔AI搜索响应延迟突增?资深架构师紧急发布4项性能优化配置(限24小时内生效)
  • 免费开源数据库工具 DBeaver 26.1.3 发布,AI 助手、数据编辑等多方面更新
  • 手办复刻的扫描技术难点:复杂曲面、微小细节、反光材质怎么破
  • 树链剖分
  • Hyperf框架实战:构建高性能PHP微服务应用
  • AI医疗应用场景全解析:小白也能轻松入门,收藏必备!
  • 类器官技术发展态势、产业格局与前沿展望研究
  • 鸿蒙 ArkTS 实战:Live Product Board 从直播商品看板到电商运营工具完整解析
  • AI芯片投资:技术挑战与商业陷阱解析
  • PS 加阴影的方法有几种?教你快速添加自然柔和阴影效果
  • tprPix性能分析与优化:使用现代C++特性提升游戏帧率