WIKIOI
wiki(I:)
比赛相关
工具软件
语言基础
算法基础
搜索
动态规划
字符串
数学
数据结构
图论
计算几何
杂项
专题
图论部分简介
图论相关概念
图的存储
DFS(图论)
BFS(图论)
树基础
树的直径
最近公共祖先
树的重心
树链剖分
树上启发式合并
虚树
树分治
动态树分治
AHU算法
树哈希
矩阵树定理
有向无环图
拓扑排序
最小生成树
斯坦纳树
最小树形图
最小直径生成树
最短路
拆点
差分约束
k 短路
同余最短路
强连通分量
双连通分量
割点和桥
2-SAT
欧拉图
哈密顿图
二分图
最小环
平面图
图的着色
网络流简介
最大流
最小割
费用流
上下界网络流
Prufer 序列
LGV 引理
弦图
46 objects
本站非官方,所收集资源均来源于网络。
最小环 - 图论
## 问题 给出一个图,问其中的有 $n$ 个节点构成的边权和最小的环 $(n\ge 3)$ 是多大。 图的最小环也称围长。 ### 暴力解法 设 $u$ 和 $v$ 之间有一条边长为 $w$ 的边, $dis(u,v)$ 表示删除 $u$ 和 $v$ 之间的连边之后, $u$ 和 $v$ 之间的最短路。 那么最小环是 $dis(u,v)+w$ 。 总时间复杂度 $O(n^2m)$ 。 ### Dijkstra 相关链接: [最短路/Dijkstra](https://oi-wiki.org/graph/shortest-path/#dijkstra) 枚举所有边,每一次求删除一条边之后对这条边的起点跑一次 Dijkstra,道理同上。 时间复杂度 $O(m(n+m)\log n)$ 。 ### Floyd 相关链接: [最短路/Floyd](https://oi-wiki.org/graph/shortest-path/#floyd) 记原图中 $u,v$ 之间边的边权为 $val\left(u,v\right)$ 。 我们注意到 Floyd 算法有一个性质:在最外层循环到点 $k$ 时(尚未开始第 $k$ 次循环),最短路数组 $dis$ 中, $dis_{u,v}$ 表示的是从 $u$ 到 $v$ 且仅经过编号在 $\left[1, k\right)$ 区间中的点的最短路。 由最小环的定义可知其至少有三个顶点,设其中编号最大的顶点为 $w$ ,环上与 $w$ 相邻两侧的两个点为 $u,v$ ,则在最外层循环枚举到 $k=w$ 时,该环的长度即为 $dis_{u,v}+val\left(v,w\right)+val\left(w,u\right)$ 。 故在循环时对于每个 $k$ 枚举满足 $i