MST——最小生成树
文章平均质量分 77
zxy_snow
这个作者很懒,什么都没留下…
展开
-
zoj 1372 || poj 1287 Networking ( prim || kruskal ~)
和1406基本一样 不过用prim输入的时候 加了个判断,因为可能有重复的边,要最小的那条。kruskal写的还是不熟练!!#include #include #include #define N 55 using namespace std; int n,m,map[N][N]; int cmp( int x,int y) { return x-y; } void input() { int i,j,x,y,p,len; cin>>m; for(i=1; i> x原创 2010-09-15 21:38:00 · 1863 阅读 · 0 评论 -
poj 1679 The Unique MST
判断MST是否唯一,用次小生成树的方法,如果次小生成树和原来的最小的相等,就不唯一。 数据看来保证是连通的了。。 N^3的算法。。。如果把树存成链表,就是N^2算法了。悲剧的北京A题。。 #include #include #include #include #include #include #include #include #include #include #in原创 2011-10-27 19:45:00 · 1129 阅读 · 0 评论 -
2011 regional Beijing Site A —— Qin Shi Huang's National Road System
题目: Description During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in China ---- they were Qi, Chu, Yan, Han, Zhao, Wei and Qin. Ying Zheng was the king of原创 2011-10-25 11:03:27 · 2175 阅读 · 3 评论 -
zoj 2326 || poj 2075 Tangled in Cables(MST)
<br />很水的最小生成树。<br /> <br />给你两个城市之间的道路(无向图),求出需要的电缆。如果大于所提供的,就输出Not enough 。。。 否则输出所需要的电缆长度。<br /> <br />Prim。。。这题没有说城市数目。。。210SF 310AC了。。。估计就这两者之间吧。<br /> <br />如果数据量大点,是要优化的,可以用字典树查找城市名字。<br /> <br />#include <stdio.h> #include <stdlib.h> #include <io原创 2011-01-24 11:05:00 · 1332 阅读 · 0 评论 -
zoj 1542 || poj 1861 Network(MST = = Kruskal~)
<br />很早以前WA掉的,今天改都没改交了,A了,我很费解,很愤慨 = =。。<br /> <br />不解释。<br /> <br />#include <stdio.h> #include <stdlib.h> #include <iostream> #include <memory.h> #include <limits.h> #define N 1001 using namespace std; struct edge { int x,y,len; }hub[15001];原创 2010-11-27 15:49:00 · 1709 阅读 · 0 评论 -
zoj 1914 || poj 2349 Arctic Network(Prim~)
给你点的坐标,计算最小生成树,然后算去掉给定数目的树上的最长边后的那条边。我用的PRIM,先把边算出来,然后快排,再取题目要求的那条边。我用qsort老不对。。。用sort对了。。。排名很靠前,嘻嘻,不过,运行时间枕的是靠RP。。。#include #include #include #include #include #include #include using namespace std; const int N = 501; int n,sat,map[N][N];原创 2010-09-25 12:27:00 · 1876 阅读 · 1 评论 -
zoj 3204 Connect them(Kruskal)
<br />该死的字典序。。。<br /> <br />排序抄党的。。。我了个去。。。自己想的还是有问题,不了解那个qsort里面的比较函数是怎么实现的。。。<br /> <br />中秋,大家要快乐~~哈哈哈哈哈哈哈哈哈哈,不爽,吃饭去。<br /> <br />#include <stdio.h> #include <stdlib.h> #include <iostream> #define N 110 using namespace std; struct c { int x,y,le原创 2010-09-22 11:05:00 · 1329 阅读 · 0 评论 -
zoj 1203 Swordfish(Prim!)
<br />前几道最小生成树的题都是PRIM与KRUSKAL均可以做的,这道题明显的prim简单点~~<br /> <br />还是挺水的MST。。。不过PE了N次。小纠结下。。。<br /> <br />#include <stdio.h> #include <stdlib.h> #include <iostream> #include <iomanip> #include <math.h> #include <limits.h> #include <memory.h> #define N原创 2010-09-21 17:41:00 · 1767 阅读 · 0 评论 -
zoj 2048 Highways(Kruskal~)
<br />这道题目和POJ有一道题目一样哎,但是内容不一样。。<br /> <br />这道题其实也挺水的,如果再加个字典序的话就纠结点,可惜没有而且还是special judge~<br /> <br />开始一直WA,看了党的才知道,我开始判断不加入集合的有点错,我以为不加到节点中就可以在下面的过程中不判断已经有高速的路了,WA证明我这点是错滴。。。因为kruskal算法是判断与它在一个集合里的点。。。等等等等。。。不加入的话,在PRE数组中体现不出来它们已经在集合里了。。。说得挺纠结的吧 呵呵~<b原创 2010-09-22 19:11:00 · 2214 阅读 · 0 评论 -
zoj 1586 QS Network (Prim~)
好纠结啊。。。这题蛮水的。。。。把买adopters的费用加到map里就行了。。。很顺利滴写完了。。交了。。WA.。。查了半天错。。。i j写错了。。。我了个去啊。。。以后不用i j 了,我用i k。。。。#include #include #include #include const int N = 1002; using namespace std; int map[N][N],n; void input() { int i,j,cost[N],value; cin >原创 2010-09-23 14:46:00 · 1120 阅读 · 0 评论 -
zoj 2966 Build The Electric System ( prim || kruskal~ )
<br />做的这几道基本都是一样的。。。。<br /> <br />prim纠结死了,SE了好多次。。。后来发现是要在赋值的时候 map[x][y] = map[y][x] = len; 原来忘了把两条路都弄上,只弄了一个。。。<br /> <br />kruskal很顺当。。。我应该学学党那种优先队列的方法了。。。<br /> <br />PRIM<br />#include <stdio.h> #include <stdlib.h> #include <iostream> #define N 5原创 2010-09-16 14:55:00 · 1423 阅读 · 0 评论 -
poj 2485 Highways(Kruskal!)
<br /> <br />哈哈~~这次写kruskal 完全自己写的 没有参照以前写的 哈哈~~不容易。。。<br /> <br />求出得出的最小生成树上最长的路长,小变形而已。HITS提示用scanf。。我试试cin,超时了,改成scanf AC。。。<br /> <br />#include <stdio.h> #include <stdlib.h> #include <iostream> #define N 510 using namespace std; int n,p,pre[N];原创 2010-09-16 13:31:00 · 1287 阅读 · 0 评论 -
poj 1258 Agri-Net(Kruskal || Prim )
prim熟练了 就没用prim写,这次用kruskal熟练了不少~~下次继续~我怀疑它的数据中 输入的矩阵不是对称的。。。。#include #include #include #define N 110 using namespace std; struct node { int x,y,len; }farm[N*N]; typedef struct node NODE; int cmp( const void *a,const void *b) { return ((原创 2010-09-16 12:48:00 · 2298 阅读 · 0 评论 -
zoj 1406 Jungle Roads(Prim || Kruskal)
<br />很简单的最小生成树类型,直接求连一起的最小路程。<br /> <br />Prim算法和DIJ很类似啊,就变了一步。。。<br /> <br />KRU让我纠结了好长时间,不过还好明白了,PRE数组中存的是与i同一集合的下标。。。<br /> <br /> <br />Prim<br />#include <stdio.h> #include <stdlib.h> #include <limits.h> #include <memory.h> #define N 28 int map[原创 2010-09-09 12:39:00 · 1228 阅读 · 0 评论