
图算法
静。弦
这个作者很懒,什么都没留下…
展开
-
Kruskal(最小生成树,稀疏图)
每次选权值最小的边,如果构成环,则舍弃,选择次小的,直到所有的点都包含在生成树中。图解:https://blog.youkuaiyun.com/qq_41754350/article/details/81460643#include <iostream>#include <algorithm>using namespace std;const int MAXN = 5...转载 2019-05-23 20:15:48 · 987 阅读 · 0 评论 -
Prim算法(最小生成树)
参考链接:https://www.cnblogs.com/nannanITeye/p/3446424.htmlprim算法实现图的最小生成树,假设n个顶点,m条边。适合稠密图,其时间复杂度为O(n^2),与边的数目无关,而kruskal算法的时间复杂为O(eloge),和边数有关,适合稀疏图。算法思路:从某个顶点开始,假设v0,此时v0属于最小生成树节点中的一个元素,假设U为已经确...原创 2019-05-15 17:08:57 · 364 阅读 · 0 评论 -
Bellman-ford算法(poj3259 Wormholes)
Bellman-ford算法和详解http://www.wutianqi.com/blog/1912.htmlpoj3295t译文:农夫约翰在探索他的许多农场,发现了一些惊人的虫洞。虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径,W(1≤W≤200)个虫洞。作为一个狂热的时间旅行FJ...原创 2019-05-10 20:24:51 · 180 阅读 · 0 评论 -
Dijkstra(单源最短路径)
Dijkstra的主要特点是以起始点为中心向外层层拓展(广度优先搜索思想),直到拓展到终点为止。用二维数组edge表示顶点之间的关系,dis数组表示源点到其余各点的距离,book数组表示dis对应的距离是否是最短距离。dis数组初始化为【0,2,6,4】,book为【1,0,0,0】既然是求点1到其余各点的距离,那么,就找一个离点1最近的点。通过dis数组可知,为点2,这个图...原创 2019-05-09 22:29:30 · 41212 阅读 · 5 评论 -
Floyd(最短路径)-傻子也能看明白的弗洛伊德算法(转)
转载自:https://www.cnblogs.com/wangyuliang/p/9216365.html暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最...转载 2019-05-09 19:34:01 · 1629 阅读 · 1 评论 -
二分图详解(匈牙利算法)+代码模板
转自:https://blog.youkuaiyun.com/Kirito_j/article/details/52166566二分图的最大匹配、完美匹配和匈牙利算法2013-08-01Algorithms二分图匹配,图论,算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching)...原创 2020-09-21 22:57:38 · 1215 阅读 · 0 评论 -
拓扑排序-POJ1094-Sorting It All Out
转载于:http://www.cppblog.com/infinity/archive/2008/11/06/66086.html每次读入一对关后,做一次floyd, 计算传递闭包.然后判环,其实很简单,就是看有没有点i的map[i][i]=1;有就证明有环!如果有环就矛盾了。如果无环再判断是否能确定关系,(注意每次都把出入度数组清零!)计算每个点的出度+入度是否=n-1;如果所有点都...转载 2019-05-24 22:58:53 · 139 阅读 · 0 评论