九度OJ教程75 kruskal求最小生成树
来源:互联网 发布:淘宝商城百丽女鞋 编辑:程序博客网 时间:2024/05/21 16:56
题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=74
免费地址:http://acmclub.com/problem.php?id=1145
//九度OJ教程75 kruskal求最小生成树之《继续畅通工程》//http://ac.jobdu.com/problem.php?cid=1040&pid=74//Tip:先用qsort排序,然后顺序遍历直到完成。#include <stdio.h>#include <stdlib.h>#define N 10000typedef struct E{int a,b;int value;int over;}E;int cmp(const void *a,const void *b){E *aa=(E *)a,*bb=(E *)b;return aa->value-bb->value;}int Tree[N]={0};int findroot(int a){if(!Tree[a])return a;int temp=findroot(Tree[a]);Tree[a]=temp;return temp;}int main(){int i,j,m,n,a,b,sum;E ss[N];while(~scanf("%d",&n)&&n){m=n*(n-1)/2;for(i=0;i<N;i++)Tree[i]=0;for(i=0;i<m;i++){scanf("%d %d %d %d",&ss[i].a,&ss[i].b,&ss[i].value,&ss[i].over);if(ss[i].over){int tempa=findroot(ss[i].a);int tempb=findroot(ss[i].b);if(tempa^tempb)Tree[tempa]=tempb;i--;m--;}}qsort(ss,m,sizeof(ss[0]),cmp);for(i=sum=0;i<m;i++){a=findroot(ss[i].a);b=findroot(ss[i].b);if(a^b){Tree[a]=b;sum+=ss[i].value;}}printf("%d\n",sum);}return 0;}
- 九度OJ教程75 kruskal求最小生成树
- //九度OJ教程71 kruskal求最小生成树。
- 最小生成树--九度1017[Kruskal]
- 最小生成树--九度1144[Kruskal]
- 最小生成树--九度1154[Kruskal]
- 九度 OJ 题目1144:Freckles (kruskal算法 最小生成树)
- KrusKal求最小生成树
- HDU-1233(kruskal求最小生成树)
- hdu1863(kruskal求最小生成树)
- hdu1879(kruskal求最小生成树)
- Kruskal算法求最小生成树
- ZOJ1203 kruskal求最小生成树
- POJ1251 || ZOJ1406 kruskal求最小生成树
- hdu 1233 Kruskal求最小生成树
- Kruskal 算法 求最小生成树
- 24.kruskal算法 求 最小生成树
- poj2485 Highways(kruskal求最小生成树)
- Kruskal算法(求最小生成树)
- VB小程序:生成十个不重复的随机数
- 职场秘籍
- hibernate中annotation方式SchemaExport无法生成表的原因(ORA-02261)
- Weak variable scope control in Python
- Errors and Exceptions
- 九度OJ教程75 kruskal求最小生成树
- Android之UI学习篇九:使用TabHost实现卡片选项菜单
- js判断是否为空
- jQuery对表单元素的取值和赋值操作 原
- mac系统如何显示和隐藏文件
- 前面板测试工具
- oracle Statspack安装使用攻略
- 无法访问windows installer服务
- SQL查询语句大全集锦