![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM图论
罗博士
这个作者很懒,什么都没留下…
展开
-
最大流的Ford-Fulkerson方法初步
网络或者网络流是一种基本的数据结构,而最大流则是网络流上的基本问题。网络本质上是一个符合一定条件的有向带权图。而最大流是最大可行流的简称,可行流是一个定义在网络流上的符合一定条件的函数。原创 2014-11-17 19:35:10 · 2729 阅读 · 0 评论 -
MST的Prim算法和Kruskal算法
最小生成树MST是图论中的基本算法。一般使用Prim算法或者Kruskal算法解决。这两类算法都是贪心算法,Prim算法是基于点的,而Kruskal算法是基于边的。假设无向带权图G(V,E,W),Prim的算法流程大致如下: 令R、Q为顶点的集合,初始R为空集,Q为V 循环: 从Q中取出点v,满足v到R的距离比Q中其他点都要近,将v加入R (所谓v到R的距离,就是v原创 2014-05-29 21:03:33 · 2605 阅读 · 0 评论 -
单源最短路径的SPFA算法
SPFA算法用于求单源最短路径,是Bellman-Ford算法的队列优化。尽管有人指出该算法O(E)的复杂度的理论证明是错误的,且在特别针对的图上,SPFA算法非常慢。而Dijkstra算法的理论证明严谨,表现也十分稳定。但是Dijkstra算法不能用于负权值的图,而Bellman-Ford算法效率又十分的低。所以仍然有很多人倾向于使用SPFA算法(SPFA实现比较简单,有人认为比Dijk...原创 2014-05-28 17:56:41 · 992 阅读 · 0 评论 -
最大流的Dinic算法
基于Ford-Fulkerson方法的原始的DFS算法效率是比较低的,因此针对如何尽快的扩流存在一系列的改进算法,例如Dinic算法。Dinic算法的基本思路是:在一次搜索中,在层次间进行扩流,而不是仅对一条路径进行扩流。所谓层次,就是指各节点距离起点的路径长度。当然,每个节点的层次随着残量的变化而变化。 Dinic算法的基本流程是: 1、根据残量网络计算层次图,使用BFS; 2、在层次图上原创 2015-03-27 10:18:10 · 838 阅读 · 0 评论