
最小生成树
凌阡陌
随心而为,我自逍遥
展开
-
poj1251最小生成树(kruskal算法)
#include using namespace std;typedef struct//顶点信息{ char data; int jihe;}VEX;typedef struct{ char vexh,vext;//边的顶点和终点 int weight; int flag;}EDGE;VEX t[1000];EDGE e[1000];原创 2012-03-04 20:38:50 · 8134 阅读 · 0 评论 -
hdu4305生成树计数问题
Matrix-Tree定理,用来解决生成树计数问题。1、G的度数矩阵D[G]是一个n*n的矩阵,当i!=j时,D[i][j]=0;否则等于第i个点的度数。2、G的邻接矩阵A[G],相连即为1,否则为0.3、Kirchhof矩阵C[G]=D[G]-A[G]4、Matrix-Tree定理:G的所有不同的生成树的个数等于Kirchhof矩阵的n-1阶行列式的值。5、运用高斯消元求得行原创 2012-09-15 20:04:15 · 438 阅读 · 0 评论 -
hdu4263 Kruscal
就是求是否存在有k条蓝边的生成树。分别求蓝边尽量多和蓝边尽量少的情况,如果在这之间,就存在。否则,不存在。比赛的时候想对了,关键是输入超时了,用的cin,主要是不能用%c。。。#include #include #include using namespace std;const int mm=25000;const int mn=2500000;struct Edge{原创 2012-08-27 21:31:40 · 425 阅读 · 0 评论 -
poj1679次小生成树
题意:最小生成树是否唯一。思路:求得次小生成树,如果与最小生成树相等,则不唯一。求次小生成树的过程:求得最小生成树,依次去掉最小生成树中的边,求的值中的最小值即为次小生成树。次小生成树可能与最小生成树相等。。。#include #include #include #include using namespace std;const int maxn=105;const原创 2012-08-13 18:57:19 · 275 阅读 · 0 评论 -
poj3522 并查集+kruskal
这个题目我一开始的思路是利用prim算法,选出边数最少的点,利用循环,每次选出一条边进行枚举,选出最大值与最小值差距最小的生成树。但是写完之后交上去怎么都过不了,于是也按照网上的主流算法,利用kruscal算法来写。先进行排序,再进行枚举。。。#include #include #include using namespace std;#define MAXN 105#def原创 2012-07-25 20:20:42 · 327 阅读 · 0 评论 -
poj1789最小生成树
/* ID:limosunyue Name:Karen Lang:C++ Date:Mar.9,2012*/#include #include using namespace std;#define MAX_NODE 2100#define MAX_EDGE 4000000#define INF 99999999int arr_list[原创 2012-03-09 20:40:59 · 256 阅读 · 0 评论 -
poj1258
/* Made by Karen 20:30 at Mar.5,2012 Kruskal*/#include #include #include using namespace std;#define max_ve 120#define max_ed 14400struct node{ int par,ans;}Vertex[max_ve];s原创 2012-03-05 20:59:28 · 223 阅读 · 0 评论 -
poj2485
注:There is an empty line after each test case是出现在输入数据之中,只需要加一个getchar()就可以了。 这道题和poj1285很像,只是求的是构成最小生成树的边中最长的一条。/* Made by Karen 20:30 at Mar.5,2012 Kruskal*/#include #include原创 2012-03-05 21:25:26 · 276 阅读 · 0 评论 -
hdu1863(prim算法)
/*made by karen12:00 at Mar.4,2012prim算法求最小生成树奇怪的是Dev c++可以编译但是在Code Blocks里面编译不成功??*/ #include #include using namespace std;#define INF 9999999#define MAX_Point 110#define MAX_Edge 12100原创 2012-03-04 12:12:40 · 379 阅读 · 0 评论 -
hdu1162最小生成树
/* Made by Karen 16:40p.m. at Mar.4,2012 prim算法求最小生成树 同hdu1875 而且在main函数里面的处理更简单*/#include #include #include using namespace std;#define MAX_Point 110#define MAX_Edge 12100原创 2012-03-04 16:39:07 · 303 阅读 · 0 评论 -
hdu1875最小生成树
/* Made by Karen 16:00p.m. at Mar.4,2012 prim算法求最小生成树 关键在于彼此之间距离的确定*/#include #include #include using namespace std;#define INF 999999999#define MAX_Point 200#define MAX_Edge 4原创 2012-03-04 16:04:57 · 297 阅读 · 0 评论 -
最小生成树 prim算法
最小生成树的问题分析:n个城市间,最多可设置n(n-1)/2条线路n个城市间建立通信网,只需n-1条线路问题转化为:如何在可能的线路中选择n-1条,能把 所有城市(顶点)均连起来,且总耗费 (各边权值之和)最小prim算法:算法思想:设N=(V,{E})是连通网,TE是N上最小生成树中原创 2012-03-04 10:52:39 · 256 阅读 · 0 评论 -
poj1797最大生成树
题目很简单,就是最大生成树的应该,最好玩的是居然PE了,我都好长时间没见过这个了,居然不认识了,想了好半天才想出来,原来是格式错误哦。。。#include #include #include using namespace std;const int oo=1e9;const int mm=1111;int arr_list[mm][mm],point[mm],lowcost[mm原创 2012-09-21 21:03:15 · 346 阅读 · 0 评论