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

最小树形图

给定一个有权有向图 \(G=\langle V,A\rangle,w:A\mapsto\mathbb{R}\) 和一个根 \(r\in G\),求以 \(r\) 为根的最小生成树,满足每条边都是父亲指向儿子(外向树)。

暴力做法

不失一般性,我们可以简单的 \(O(|V|+|A|)\) \(\text{dfs}\) 判断这样的树是否存在,并且对于平行弧,我们可以只保留较小的那条。

然后我们约定 \(E\subseteq A,w(E)=\sum\limits_{e\in E}w(e)\)

\(\pi(v)\) 表示所有指向 \(v\) 的弧 \(e=(u,v)\)\(w(e)\) 最小的 \(u\)。考虑 \(M=\langle V,\{(\pi(v),v):\forall v\in V\setminus\{r\}\}\rangle\),如果 \(M\) 中无环,那么 \(M\) 就是所求。

\(M\) 中有环,我们考虑递归地缩点:

任选一个环 \(C\in M\)。新建节点 \(v_C\),建立新图 \(G^\prime=\langle V^\prime,A^\prime\rangle,w^\prime:A^\prime\mapsto\mathbb{R}\),其中 \(V^\prime=(V\setminus C)\cup\{v_C\}\)

\(A^\prime\) 满足,\(\forall e=(u,v)\in A\land e\not\in C\)

  1. \(u,v\not\in C\)\(e=(u,v)\in A^\prime,w^\prime(e)=w(e)\)
  2. \(u\in C,v\not\in C\)\(e^\prime=(v_C,v)\in A^\prime,p=(\pi(u),u),w^\prime(e^\prime)=w(e)-w(p)\)
  3. \(u\not\in C,v\in C\)\(e=(u,v)\in A^\prime,w^\prime(e)=w(e)\)

\(f(G,r)\) 表示图 \(G\) 中以 \(r\) 为根的最小树形图大小,有 \(f(G,r)=f(G^\prime,r)+w(C)\)

没有环的情况,正确性是显然的。

有环的时候,我们其实应该选择一条进入环的边,但是我们不知道具体选择哪一条,但是因为是有向边,所以从 \((u,v)\) 进入环之后,\((\pi(v),v)\) 这条边就没必要选了。不难发现我们恰好需要一条边来打破一个环,于是就按照上述方法得到 \(w^\prime\) 即可保证贪心的正确性。

按照刚刚讲的思路暴力,每轮建立 \(M\) 的代价是 \(O(|V|+|A|)\),找环的代价也是 \(O(|V|+|A|)\),然后每次缩点至少减少 \(1\) 个点,至多执行 \(O(|V|)\) 轮。于是整体复杂度就是 \(O(|V|^2+|V||A|)\),注意到不连通可以 \(O(|V|+|A|)\) 判定,于是可以写成 \(O(|V||A|)\)(忽略没有弧的情况)。

我们发现每轮全部重新计算太浪费了,只需要修改环上的点。于是我们用可并堆维护每个点的入边(如果要做到理论最优,需要 \(\text{fib}\) 堆),再用并查集维护缩点的关系,这样就可以做到 \(O(|A|+|V|\log|V|)\) 了。

代码?鸽子能更新就不错了。

http://www.fuzeviewer.com/news/318/

相关文章:

  • SVN 主分支合并之通过主分支合并子分支执行流程
  • 现代c++编程体验2
  • 化繁为简:解密国标GB28181算法算力平台EasyGBS如何以兼容性与易用性赋能安防集成
  • 计算机毕业设计springboot音乐畅听系统 基于Spring Boot框架的智能音乐播放系统编写 Spring Boot驱动的音乐在线欣赏平台构建
  • vue2 封装组件使用 v-mode【el-radio,el-input】
  • P11993 [JOIST 2025] 迁移计划 题解
  • ERP和CRM、SRM、MES之间的关系,怎么理解?
  • 2025年市面上氟碳铝单板品牌、市场氟碳铝单板公司、国内氟碳铝单板生产厂家、2025年氟碳铝单板品牌、口碑好的氟碳铝单板产品综合评测
  • 扩展欧几里德算法
  • 嵌入式基础--第七周作业--OLED显示
  • Luogu P3237 [HNOI2014] 米特运输 题解 [ 蓝 ] [ 树形 DP ] [ 哈希 ]
  • 各个版本的sqlite-jdbc jar下载链接
  • echart - f
  • BongoCat日志搜索程序:正则表达式与高级筛选
  • c# 使用 jwt
  • macro出pin
  • 读书笔记:告别数据冗余!Oracle引用分区让父子表管理如此简单
  • 2025 年 10 月绕包电缆头,熔接电缆头,预制电缆头,冷缩管电缆头厂家最新推荐,产能、专利、环保三维数据透视
  • 2025年浅拾兰花双萃致臻精华油:从成分与技术维度解析其护肤效能
  • 路沿石加工设备厂家有哪些?2025石材机械十大品牌
  • 2025年10月重庆装饰装修公司推荐排行榜:十家企业综合对比与实用指南
  • 工业水泵控制移动终端APP需求于开发
  • 《CSS盒子模型》笔记总结 - 教程
  • MCS-51中断系统
  • 触控感应芯片电容式触摸IC 4通道触控方案VK36N4D
  • 测试领域,苏州永创-STD2000X-半导体分立器件电参数测试仪系统能测试哪些元器件和参数 - FORCREAT
  • 2025年AI IDE的深入对比与推荐排行:从好用到生成效果的转变
  • 20232411 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025 年 10 月进销存管理系统,进销存软件,进销存管理软件公司最新推荐,技术实力与市场口碑深度解析!
  • 常用数据管理工具与平台汇总