摘要: Floyd-Warshall算法可以求解出图内任意两点的最短路径,适用于稠密图,但时间复杂度为 \(O(n³)\);Dijkstra算法求解单源最短路径的时间复杂度为 \(O(m + n log n)\),对每个节点都做一次,也可以达成全源最短路径,但是这个方法仅适用于非负权边图。 Johnson 阅读全文
posted @ 2025-02-16 22:05 Ofnoname 阅读(0) 评论(0) 推荐(0) 编辑
摘要: Dijkstra 的局限性 在带权图的最短路径问题中,我们的目标是从一个起点出发,找到到达其他所有节点的最短路径。无论是交通导航中的最短耗时路线,还是金融网络中的最小成本路径,这一问题的核心始终是如何在复杂权重关系中寻找最优解。 经典算法Dijkstra凭借其贪心策略和优先队列优化,成为解决非负权图 阅读全文
posted @ 2025-02-16 20:50 Ofnoname 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 最短路径问题是图论中最经典且重要的应用问题之一。它的目标是找到一个图中从起点到终点的最短路径,即在所有可能的路径中,选择一条边权和最小的路径。该问题广泛存在于多个实际场景中,比如交通运输、通信网络、导航系统等。 在实际生活中,很多情况都涉及到寻找最短路径。例如,导航系统需要为用户推荐从当前位置到目的 阅读全文
posted @ 2025-02-16 12:30 Ofnoname 阅读(100) 评论(0) 推荐(1) 编辑
摘要: 上期回顾:https://www.cnblogs.com/ofnoname/p/18715203 在前文中,我们剖析了最小生成树(MST)问题中的两大经典算法: Kruskal 以“边权平等”为信条,通过排序与并查集自下而上聚合连通分量; Prim 以“中心辐射”为策略,通过优先队列自上而下扩张领土 阅读全文
posted @ 2025-02-15 11:29 Ofnoname 阅读(116) 评论(2) 推荐(1) 编辑
摘要: 最小生成树问题 想象你是一位城市规划师,面前摊开一张地图,标记着散落的村庄。你的任务是用最经济的成本,在村庄间铺设道路,让所有村庄互通。这个问题看似简单,却隐藏着一个经典的数学命题:如何在一张“带权图”中,找到一棵总权重最小的树,连接所有节点? 数学定义 给定一个连通无向图 \(G=(V,E)\), 阅读全文
posted @ 2025-02-14 17:04 Ofnoname 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 上期回顾:https://www.cnblogs.com/ofnoname/p/18678895 之前我们已经介绍了最大流问题的基本定义,让从源点流出的总流量达到最大,同时不违反任何管道的运输能力限制。学习了最大流最小割定理、增广路径与残量网络的构建方法,以及如何利用这些概念实现 EK 算法。EK 阅读全文
posted @ 2025-02-13 21:16 Ofnoname 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 在图论中,子图是由原图的一部分节点和这些节点之间的边构成的图。图的密度通常是指图中边的数量与节点的数量之比。形式化地,对于一个图 $ H = (V, E) $,其密度定义为: \[\text{密度}(H) = \frac{|E|}{|V|} \]其中,$ |E| $ 表示图 $ H $ 中的边的数量 阅读全文
posted @ 2025-02-13 13:39 Ofnoname 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 上期回顾:https://www.cnblogs.com/ofnoname/p/18678895 之前我们已经介绍了最大流问题的基本定义、最大流最小割定理、增广路径与残量网络的构建方法,以及如何利用这些概念实现 EK 算法。EK 算法通过每次使用 BFS 寻找从源点到汇点的最短增广路径,保证了算法在 阅读全文
posted @ 2025-02-04 18:07 Ofnoname 阅读(170) 评论(0) 推荐(2) 编辑
摘要: 在 C++ 标准模板库(STL)中,std::lower_bound 和 std::upper_bound 是两个强大的二分查找函数,适用于 有序范围(如 std::vector、std::set 或 std::map)。这两个函数可以帮助我们快速找到元素的位置,支持高效的插入、统计和查找操作。 l 阅读全文
posted @ 2025-01-31 13:00 Ofnoname 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 最大流问题是其中一个经典的图论问题,其目标是在一个流网络中计算从源点到汇点的最大流量。流网络由节点和边组成,每条边都有一个容量,表示该边所能承载的最大流量。 最大流问题 通常来说,最大流问题仅在有向图上考虑,允许成环,且不考虑重边和自环。在数学上,流网络可以表示为一个有向图 $ G = (V, E) 阅读全文
posted @ 2025-01-18 22:56 Ofnoname 阅读(174) 评论(0) 推荐(2) 编辑