码迷,mamicode.com
首页 >  
搜索关键字:kruskal    ( 1147个结果
杭电ACM1162——Eddy's picture~~最小生成树
这一题,就是简单的最小生成树的应用。开始,没有想到用最小生成树做,想到的是贪心,当知道了用最小生成树做的时候,还犯了一个很严重的错误,就是时间复杂度的估计错了,导致开始不敢写,在想其他的办法。当作一次教训吧。 下面是AC的代码,有详细的注释,用的是并查集来判环,时间复杂度为nlogn,主要时间在排序上。 #include #include #include #include using...
分类:其他好文   时间:2015-05-02 12:33:32    阅读次数:119
Out of Hay.(POJ-2395)
最小生成树kruskal算法。 首先必须形成一棵最小生成树,然后找出最长的路。 #include #include #include #include #include #include #include using namespace std; int n,m,a,b,c,par[1005],rankk[1005], max_road; struct edge { int u,v,c...
分类:其他好文   时间:2015-05-01 12:08:49    阅读次数:147
Bad Cowtractors.(POJ-2377)
最大生成树,只需要变一下改变值的部分就可以了。 尝试了一下运用并查集的kruskal算法,与prim相比各有利弊吧,还要根据数据特点适当选取。 #include #include #include #include #include #include #include using namespace std; int n,m,a,b,c,par[1005],rankk[1005]; struc...
分类:其他好文   时间:2015-05-01 10:44:48    阅读次数:130
最小生成树 并查集 最短路径
#include #include struct edge{ int u; int v; int w;//为了方便排序这里穿件一个结构体来存储边的关系 }e[10]; int n,m; int f[10]={0},sum=0,count=0;//并查集需要得到的一些变量 //f数组大小根据实际情况来设置,要比n的最大值大1 //排序 int cmp(const void *a,const voi...
分类:其他好文   时间:2015-04-28 16:11:27    阅读次数:124
杭电1233——还是通畅工程~简单最小生成树问题
这题,典型的最小生成树问题,可以用Kruskal算法来实现,配合着并查集来高效求解。 先将各边按权值进行从小到大排列。遍历一个各边便可求解,时间复杂度为O(|E|log|V|),其中E为边的个数,V为顶点数。 下面是AC代码,代码中有注释: #include #include #include using namespace std; class data ...
分类:其他好文   时间:2015-04-27 15:16:20    阅读次数:127
最小生成树的两种算法:Prim和Kruskal算法
越来越明白了一个道理:你写不出代码的原因只有一个,那就是你没有彻底理解这个算法的思想!! 以前写过最小生成树,但是,水了几道题后,过了一段时间,就会忘却,一点也写不出来了。也许原因只有一个,那就是我没有彻底理解这两种算法。 主题: 其实,求最小生成树有两个要点,一个是权值最小,还有一个就是这个图必须是树。而Prime和Kruskal的不同之处在于两者选择的变量不同,Prime选择的是始终保持...
分类:编程语言   时间:2015-04-26 09:23:26    阅读次数:186
HDU 1102 Constructing Roads (最小生成树+Kruskal算法入门)
【题目链接】:click here~~ 【题目大意】:已知某几条道路已经修完,求全部道路要通路的最小花费 【解题思路】:基础的Kruskal算法了,按照边的权值从小到大排序一遍,符合条件加入到生成树中 代码: /* Author:HRW kruskal+并查集 */ #include using namespace std; const int max_v=105; const int...
分类:编程语言   时间:2015-04-25 10:45:48    阅读次数:208
最小生成树2(Kruskal算法)
Kruskal算法: 1:按照边的权值的顺序从小到大查看一遍,如果不产生圈(重边也算),就把当前这条边加入到生成树中,基本算法证明和prim一样 2:如何判断是否产生负圈,假设现在要把连接顶点u和顶点v的边e加入到生成树中,如果加入之前u和v不在同一个联通分量里,那么加入e也不会产生负圈,反之,如果u和v在同一个连通分量里,那么一定会产生圈,可以使用并查集高效的判断是否属于同一个连通分量 P...
分类:编程语言   时间:2015-04-24 22:48:54    阅读次数:187
HDU4786 Fibonacci Tree【最小生成树】
题目大意: 给你图的N个点和M条双向边。告诉你每条边的权值。权值为1表示该边是白边,权值为0表示该 边为黑边。问:能否找到一棵生成树,使生成树白边的个数恰好为fibonacci数。如果能构成这样 的fibonacci树,输出Yes,否则输出No。 思路: 先将fibonacci数列打表。然后根据题意构图。然后根据边的权值大小排序,用Kruskal先求一遍 最小生成树,再求一遍最大生成树。如果最小生成树和最大生成树之间存在fibonacci树,则说明 能够成fibonacci树。这是因为如果...
分类:其他好文   时间:2015-04-24 21:11:45    阅读次数:202
[BZOJ 3995] [SDOI2015] 道路修建 【线段树维护连通性】
题目链接:BZOJ - 3995题目分析这道题..是我悲伤的回忆..线段树维护连通性,与 BZOJ-1018 类似,然而我省选之前并没有做过 1018,即使它在 ProblemSet 的第一页。更悲伤的是,这道题有 40 分的暴力分,写个 Kruskal 就可以得到,然而我写了个更快的 DP 。这本...
分类:其他好文   时间:2015-04-24 18:37:28    阅读次数:161
1147条   上一页 1 ... 85 86 87 88 89 ... 115 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!