码迷,mamicode.com
首页 >  
搜索关键字:边集    ( 308个结果
Python图论算法(三)——kruskal
edge = [[1,2,1],[1,2,3],[1,3,2],[2,3,1],[2,4,4],[3,4,2]] #这是用边集合表示的图 s = [[]] n = 4 for i in range(n): s.append([i+1]) #print s #compare方法是为了对边排序写的,作为参数传入sort,就可以排序了 def compare(a,b): if(a[2...
分类:编程语言   时间:2015-03-27 22:26:43    阅读次数:242
【数据结构第五周】图(上)
1、什么是图表示多对多的关系包含一组顶点:通常用V(Vertex)表示顶点集合一组边:通常用E(Edge)表示边的集合2、抽象数据类型定义类型名称:图(Graph)数据对象集:G(V,E)由一个非空的有限顶点集合V和一个有限边集合E组成。操作集:对于任意图G 属于 Graph,以及v 属于 V,e ...
分类:其他好文   时间:2015-03-10 16:51:29    阅读次数:176
数组模拟实现邻接表
图的边的表示方法,有很多。像邻接矩阵、边集数组、邻接表等。其中,第三者的时空复杂度应该是最优的。但是实现却需要比较麻烦的链表,但是我们也可以用数组来模拟链表,使编程的复杂度进一步降低。 这种算法:遍历所有的边的时间复杂度是O(M),M表示边的总数,空间复杂度也是O(M)。在最坏情况下,查询i与j是....
分类:编程语言   时间:2015-03-08 20:02:58    阅读次数:185
克鲁斯卡尔(Kruskal)算法
1 # include 2 3 # define MAX_VERTEXES 100//最大顶点数 4 # define MAXEDGE 20//边集数组最大值 5 # define INFINITY 65535//代表不可能的数(无穷大)...
分类:编程语言   时间:2015-03-03 18:34:20    阅读次数:145
[BZOJ1016][JSOI2008]最小生成树计数(结论题)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1016分析:首先有个性质:如果边集E、E'都可以表示一个图G的最小生成树(当然E和E’的元素个数肯定一样),那么某确定权值的边在E中出现的次数==在E‘中出现的次数简单证明一下:按照Kru...
分类:Web程序   时间:2015-03-02 00:56:51    阅读次数:198
例题11-2 苗条的生成树 UVa1395
1.题目描述:点击打开链接 2.解题思路:本题实质上还是利用Kruskal算法来生成MST。首先按照边权值由小到大排序,对于一个连续的边集[L,R],如果使得这n个点全部连通,则一定存在一个苗条度不超过w[R]-w[L]的生成树。因此,可以从小到大枚举L,对于每一个L,利用Kruskal算法生成最小生成树后,计算苗条度,用ans取最小的即可。如果枚举结束后ans依然是INF。那么输出-1。这里可...
分类:其他好文   时间:2015-02-28 16:38:49    阅读次数:159
浅谈图的前向星遍历
个人见解,如有错误,欢迎指出。 作为一个算法新手,我就从我个人的角度来讲述前向星这种算法,我看到大多数都是建立一个边集的结构体,然后在结构体内放入边指向结点,边的前驱,和边权: 例如: struct edge{//建立一个边集结构体     int next;//好一点的把next换成了pre,从字面上来讲更好理解     int w;//边的权值     int v;//边指向结点,...
分类:其他好文   时间:2015-02-26 16:45:43    阅读次数:106
POJ2914 Minimum Cut【全局最小割】【Stoer-Wangner】
题目大意: 提一个无向有重边的图,有重边的边权累加起来,求全局最小割。 思路: 一个无向连通图,去掉一个边集可以使其变成两个连通分量则这个边集就是割集。最小割 集当然就是权和最小的割集。 这是一个最简单的全局最小割模板题。直接套上模板就可以了。来说说Stoer-Wangner算 法吧。 Stoer-Wangner算法: 对于图中的任意两个顶点u和v,若u,v属于最小割的同一个集合中,那么僵顶点u和顶点 v合并后并不影响图的最小割。那么,如果能求出图中某两个顶点之间的最小割,更新答案 后合并这两个顶点继续求...
分类:其他好文   时间:2015-02-20 23:12:06    阅读次数:361
UVa 1646 (递推 JAVA大数) Edge Case
题意:有n个点围成一圈,这n个点的匹配就是没有公共点的边集(这些边只能连接一圈中相邻的两点),求所有匹配的个数。额,我不会分析。。=_=||算了几个数,找找规律发现它满足斐波那契数列的递推关系,f(n) = f(n-1) + f(n-2)自从会用了Java的BigInteger,就懒得写C的高精度了...
分类:编程语言   时间:2015-02-13 00:13:35    阅读次数:207
最小生成树(普利姆算法、克鲁斯卡尔算法)
给定一个带权的无向连通图,怎样选取一棵生成树,使树上全部边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1)克鲁斯卡尔算法图的存贮结构採用边集数组,且权值相等的边在数组中排列次序能够是随意的.该方法对于边相对照较多的不是非常有用,浪费时间.(2)普里姆算法图的存贮结构採用邻接矩阵.此方法是按...
分类:编程语言   时间:2015-02-09 20:13:24    阅读次数:178
308条   上一页 1 ... 24 25 26 27 28 ... 31 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!