图论
码院
这个作者很懒,什么都没留下…
展开
-
图论之最短路径-------Dijkstra算法
Dijkstra算法(单源最短路径,其边的权值为非负数),其定义为以固定的一个顶点作为源点,求源点到其他顶点的最短路径。一: 集合S表示已经加入最短路径的顶点,集合T则表示未加入最短路径的顶点。 二: 为了求源点v0到各个顶点vi的最段短路径需要设置3个数组,即S[n],path[n],dist[n]; 1.S[n]:S[i]=0时表示vi为加入到集合S中,S原创 2012-08-11 10:25:07 · 977 阅读 · 0 评论 -
Havel-Hakimi定理(判断一个序列是否可图)
1,Havel-Hakimi定理主要用来判定一个给定的度序列是否是可图的。2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。4,判定过程:(1)对当前数列排序,使其呈递减。(2)从S【2】开始对其后S【1】个数字-1。(3)一直循环直到当前序列出现负数(原创 2012-11-14 20:53:30 · 768 阅读 · 0 评论 -
最大匹配与二分图建图概述
一:关于二分图最大匹配的两个定理:1:最大匹配数 + 最大独立集 = n + m(n,m为二部图两部分的个数)2:二分图的最小覆盖数 = 最大匹配数3:最小路径覆盖 = 最大独立集最大独立集是指求一个二分图中最大的一个点集,该点集内的点互不相连。最小顶点覆盖是指 在二分图中,用最少的点,让所有的边至少和一个点有关联。最小路径覆盖是指一个不原创 2012-08-27 12:26:19 · 1841 阅读 · 0 评论 -
二分图最大匹配问题之匈牙利算法
一:匈牙利算法的原理:从当前的匹配M(如果木有匹配,则取初始化匹配M为空集)出发,检查每一个未盖点,然后从它出发寻找可增广路,找到可增广路,则沿着这条可增广路进行扩充,直到不存在可增广路为止。二:根据从未盖点出发寻找可增广路搜索的方法,可以分成:1.DFS增广 2.BFS增广 3.多增广(Hopcroft-Karp算法) 采用DFS思想搜索可增广路并求出最大匹配的代码如下:#d原创 2012-08-11 10:34:49 · 1560 阅读 · 0 评论 -
HDU2121 Ice_cream’s world II 最小树形图
Problem DescriptionAfter awarded lands to ACMers, the queen want to choose a city be her capital. This is an important event in ice_cream world, and it also a very difficult problem, because the wor原创 2012-08-13 16:19:02 · 2148 阅读 · 0 评论 -
HDU1532 Drainage Ditches Dinic算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题目大意: 就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速,本题就是让你求出最大流速,无疑要运用到求最大流了。题中N为水沟数,M为水沟的顶点,接下来Si,Ei,Ci分别是水沟的起点,终点以及其容量。求原创 2012-08-20 16:25:10 · 3235 阅读 · 0 评论 -
HDU1599 find the mincost route 无向图最小环
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1599 题目大意:就是说8600要去旅行,给你若干个景区,8600想要找到一条路线,比如从A出发最终回到A,并且除了出发点外其余的景区不会不会重复走一遍,如V1>V2>V3>....>Vn,并且景区数不少于3.现在要求你找出一条花费最少的路径。其中数据N,M为景区数,道路数。a,b,c表示从a到原创 2012-08-22 18:57:36 · 1936 阅读 · 2 评论 -
网络最大流之一般增广路方法------Ford-Fulkerson
在该算法中,寻找增广路和改进网络流的方法称为标记法。 对于标记的过程不多加阐述,以下对标记的程序实现做下小小总结:1:在程序中需要定义三个数组变量分别是flag[],prev[],alpha[],其中: flag[]表示顶点的状态,其元素取值及其含义为:-1表示未标号,0表示已标号未检查,1表示已标号已检查 prev[]为标号的第一个分量:指明标号是从哪一个顶点那里得到原创 2012-08-14 22:34:43 · 6084 阅读 · 0 评论 -
最小树形图
所谓的最小树形图,就是给有向带权图一个特殊的点root,求一颗以root为根节点的树使得该树的的总权值最小。是不是觉得很神奇,最小树形图的第一个算法在1965年有中国人朱永津和刘振宏两位发明出来的。想想就激动 对最小树形图做个小小的总结:1:清除自环,自环是不可能存在于任何最小树形图中的,另外清除自环后 其复杂度才能真正为O(VE)2:求出每个顶点的的最小入边3:判断该图是否存原创 2012-08-13 16:18:18 · 2253 阅读 · 0 评论 -
图论之拓扑排序
主要思想就是:对一个AOV网络进行拓扑排序的方法:1:从AOV网络中选择一个入度为0(即没有直接前驱)的顶点并输出2:从AOV网络中删除该顶点及该顶点发出的所有的边3:重复步骤1和2,直到找不到入度为0的顶点为止 按照上面的方法进行拓扑排序其结果有2种:一就是所有的顶点都被输出,也就是整个拓扑排序完成了;二就是仍有顶点未被输出,但剩下的图中再也没有入度为0的顶点,这样的拓扑原创 2012-08-11 10:33:13 · 718 阅读 · 0 评论 -
搜索中的剪枝技术
剪枝法是针对于数据结构中的搜索进行一些简化,从而节省了一些不必要的遍历时间。剪枝方法一:奇偶剪枝法 可以把迷宫(map)形象的简化为如下所示: 0 1 0 1 0 11 0 1 0 1 00 1 0 1 0 11 0 1 0 1 00 1 0 1 0 1注释如下: 从为0的格子任意走一步必走向为1的格子;从为1的格子任意走一步必走向为0的格子;原创 2012-08-11 10:27:40 · 881 阅读 · 0 评论 -
Havel-Hakimi定理(判断一个序列是否可图)
1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的。2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列。3,一个非负整数组成的有限序列如果是某个无向图的序列,则称该序列是可图的。4,判定过程:(1)对当前数列排序,使其呈递减,(2)从S【2】开始对其后S【1】个数字-1,(3)一直循环直到当前序列原创 2012-08-11 10:23:09 · 1054 阅读 · 0 评论 -
图论之最短路径 弗洛伊德算法(Floyd)多源最短
图论之最短路径 弗洛伊德算法(Floyd)多源最短一:该算法解决的问题是对于一个图,对该图的没一对顶点vi != vj,要求求出vi与vj之间的最短路径和最短路径长度。 二:算法思想正如我们所知道的,Floyd算法用于求最短路径。Floyd算法可以说是Warshall算法的扩展,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3)。Floyd算法的基本思想如下原创 2012-08-11 10:32:02 · 1370 阅读 · 0 评论 -
图论之最小生成树-----克鲁斯卡尔(Kruskal)算法
Kruskal算法是以边为主导地位,始终都是选择当前的可用的最小权值的边。其主要思想为1:设一个n个顶点的连通网络为G(V,E),最初先构造一个只有n个顶点没有边的非连通图T=(V,空集),每个顶点自成一格连通分量。2:当在E中选择一条具有最小权值的边时,若该边的两个顶点落在不同的连通分量上就将此边加入T中,否则就舍去并且以后永久的不使用这条边,重新选择一条权值最小的边。3:如此重原创 2012-08-11 10:30:16 · 1773 阅读 · 0 评论