![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生成树
文章平均质量分 72
fookwood
这个作者很懒,什么都没留下…
展开
-
ZOJ 1406 Jungle Roads (kruskal)
<br />史上最水最小生成树,不解释,不注释。<br /> <br />#include<iostream> using namespace std; int u[500],v[500],w[500]; int r[500],p[500];; int a,b,counter,n; int cases,i,j; char c[5]; int cmp(const int i,const int j) {return w[i]<w[j];} int find(int x) {return原创 2010-08-28 00:16:00 · 568 阅读 · 0 评论 -
POJ 1258 Agri-Net (prim + kruskal)
<br />最小生成树水题,不解释。两种方法,没有用priority queue优化。<br />PRIM:<br /> <br />#include<iostream> const int INF = 99999999; using namespace std; int main(void) { int map[101][101]; int dist[101],flag[101]; int n,i,j; int now,min,sum; while( cin >> n) {原创 2010-09-04 21:22:00 · 489 阅读 · 1 评论 -
ZOJ 1914 Arctic Network (kruskal + prim )
<br /> <br /> <br />KRUSKAL + PRIORITY_QUEUE<br />#include<iostream> #include<string> #include<queue> #include<cmath> #include<stack> using namespace std; struct edge { int from,to; int w; } t; int point[501][2],p[501]; int find(int i)原创 2010-09-18 12:31:00 · 636 阅读 · 0 评论 -
ZOJ 1542 / POJ 1861 Network (kruskal )
<br /> 又是一个MST得水题,受不了。<br /> 对于让最大边最小,显然可以用kruskal从最小边慢慢添加。<br /> 真的没有什么可以解释的了。。。。<br /> <br />#include<stdio.h> #include<string.h> #include<stdlib.h> int p[1001]; int find(int i) { return i==p[i]?i:(p[i]=find(p[i]));} struct e原创 2010-09-15 13:48:00 · 682 阅读 · 0 评论 -
ZOJ 1203 Swordfish ( prim )
<br /> 我受不鸟最小生成树的题目了,怎么看着都这么水,难道是我挑的题水?<br /> 这个题我都没有去调试,编译成功之后就提交了,果然AC....<br /> 题中给出所有点的坐标,这样便可知道所有点之间的距离,用临界矩阵存,顺便用prim,水阿~<br /> <br />#include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> const double INF =原创 2010-09-14 19:04:00 · 955 阅读 · 0 评论 -
POJ 2485 Highways (kruskal+prim)
<br />题目让求使所有点都连通的树的最大边最小的那棵树,的最大边。。。有点拗口,就是求哪棵树的最大边最小。。。求出最大边。<br /> <br />可以转换成,求最小生成树的最大边,因为kruskal中每次加到树中的边都是最小的。<br /> <br />另外,在prim算法中,我用到了在《算法艺术与信息学竞赛--算法竞赛入门经典》上看到的方法,用vector数组来表示图,用pair来方便比较,有意者可看204页的详细说明。<br /> <br />kruskal:<br />#include<stdi原创 2010-09-05 17:09:00 · 445 阅读 · 0 评论 -
ZOJ 2048 / POJ 2485 Highways ( kruskal )
<br /> 给出所有点的坐标,可以得出每个点间的距离,可得这是一个稠密图,按理说应该用prim,我用的kruskal,事实上在zoj的运行时间已经超过1s,效率不够高,sunkehappy童鞋的prim排到了第一版。。我的就凑合了。<br /> 对于题目中给出的已经建立的边,把两个点弄到一个集合中就ok了,生下的正常的kruskal做。<br /> <br />#include<string.h> #include<stdlib.h> #include<math.h> #原创 2010-09-15 12:38:00 · 1131 阅读 · 0 评论 -
ZOJ 3204 Connect them (kruskal+二级排序)
<br /> 难搞的是字典序,需要两次排序,我之前写的算法是正确的,就是排序的时候遗漏了一些东西导致最后出现错误。记住了。<br /> <br /> 至于算法的证明,我至今还没有想的很明白,但是刚开始的时候直觉告诉我可以这样做,faint!~<br /> <br />#include<stdio.h> #include<string.h> #include<stdlib.h> int p[101]; int find(int x) {return x==p[x]?x:原创 2010-09-14 00:08:00 · 480 阅读 · 0 评论 -
ZOJ 1372 / POJ 1287 Networking ( kruskal+prim )
<br />史上第二水最小生成树。<br /> <br />我刚开始是想练练prim算法,没想到是段错误,我感觉自己的算法没什么错误,就把提交到了poj上,没想到AC了,晕倒。没办法,上网搜了一下数据,测试之后发现竟然答案全部正确,faint~~果断换kruskal,用priority_queue,一次过,哎~~~<br /> <br />有人知道我prim哪里错了的说一声啊。。。。。<br /> <br />KRUSKAL:<br />#include<iostream> #include<string原创 2010-09-01 17:35:00 · 698 阅读 · 0 评论 -
ZOJ 1718 Building a Space Station
<br /> 每个cell相当于一个点,但是某些点之间可能相邻,不需要再建走廊,所以只需判断他们在空间中是否相交....<br /> <br /> 水水kruskal<br />#include<iostream> #include<stdio.h> #include<stdlib.h> #include<math.h> using namespace std; const int M = 101; const double eps = 1e-8; int p[M]原创 2010-09-21 21:18:00 · 663 阅读 · 0 评论