本文版权归点A点C和博客园共有,欢迎转载,但必须保留此段声明,并给出原文连接,谢谢合作!!!

2013年8月7日

Kruakal 算法——练习总结

摘要: 在用Kruskal算法做最小生成树的时候,一般会包含:一个结构体edge(用于记录边的起点、终点、权值);一个UFset()函数(用于初始化每个节点的parent[]数组);一个Find(int x)函数(用于找x节点所在树的根节点,并通过并查集对查找路径进行压缩);一个Union(int R1,int R2)函数(用于把两个不在同一棵树的节点合并到一起);cmp函数(排序用到);Kruskal()函数(用于找到最优解);主函数(主要是做输入和输出操作,也可以分出来写)。在解决大部分最小生成树问题的时候UFset、Find、Union这些函数几乎不用修改。大多数题目是在程序的输入部分做文章,只 阅读全文

posted @ 2013-08-07 16:51 点A点C 阅读(547) 评论(0) 推荐(0) 编辑

zoj 1372 Networking poj1287

摘要: 1 #include 2 #include 3 #include 4 #include 5 #define MAXN 55 6 #define MAXM 10000 7 8 using namespace std; 9 struct edge10 {11 int u,v,w;12 }edges[MAXM];13 int parent[MAXN];14 int sumweight;15 int N,M;16 int i,j;17 void UFset()18 {19 for(i=1;i=0; s=parent[s]);28 while(s!=x)29 {30... 阅读全文

posted @ 2013-08-07 15:58 点A点C 阅读(202) 评论(0) 推荐(0) 编辑

zoj1718 Building a Space Station poj2031

摘要: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define MAXN 101 7 #define MAXM 10000 8 using namespace std; 9 struct edge 10 { 11 int u,v; 12 double w; 13 }edges[MAXM]; 14 int parent[MAXN]; 15 int N,M; 16 double X[MAXN],Y[MAXN],Z[MAXN],R[MAXN]; 17 int i,j; 18 double sumw... 阅读全文

posted @ 2013-08-07 15:58 点A点C 阅读(158) 评论(0) 推荐(0) 编辑

zoj 1406 Jungle Roads poj 1251

摘要: 1 #include 2 #include 3 #include 4 #include 5 #define MAXN 30 6 #define MAXM 1000 7 using namespace std; 8 9 struct edge 10 { 11 int u,v,w; 12 }edges[MAXM]; 13 int parent[MAXN]; 14 int N,m; 15 int i,j; 16 int sumweight; 17 void UFset() 18 { 19 for(i=1;i=0;s=parent[s]); 28 whi... 阅读全文

posted @ 2013-08-07 15:58 点A点C 阅读(138) 评论(0) 推荐(0) 编辑

导航