HDOJ1879(继续畅通工程)
题目链接
最小生成树的题。克鲁斯卡尔算法。
1 #include <stdio.h> 2 #define N 100 3 #define M 5000 4 struct node 5 { 6 int a,b,d; 7 }edge[M]; 8 int n; 9 int p[N]; 10 void make_set() 11 { 12 int i; 13 for(i=1;i<=n;i++) p[i]=i; 14 } 15 int find_set(int i) 16 { 17 return i==p[i]?p[i]:(p[i]=find_set(p[i])); 18 } 19 void union_set(int i,int j) 20 { 21 i=find_set(i),j=find_set(j); 22 p[j]=i; 23 } 24 int cmp(const void *a,const void *b) 25 { 26 return ((struct node*)a)->d-((struct node*)b)->d; 27 } 28 int main() 29 { 30 int i,ans,cnt,x,y,z,f; 31 while(scanf("%d",&n)&&n) 32 { 33 make_set(); 34 cnt=0; 35 for(i=0;i<n*(n-1)/2;i++) 36 { 37 scanf("%d%d%d%d",&x,&y,&z,&f); 38 edge[i].a=x,edge[i].b=y,edge[i].d=z; 39 if(f) union_set(x,y),cnt++; 40 } 41 ans=0; 42 qsort(edge,n*(n-1)/2,sizeof(edge[0]),cmp); 43 for(i=0;cnt<n-1&&i<n*(n-1)/2;i++) 44 { 45 if(find_set(edge[i].a)==find_set(edge[i].b)) continue; 46 ans+=edge[i].d; 47 union_set(edge[i].a,edge[i].b); 48 cnt++; 49 } 50 printf("%d\n",ans); 51 } 52 return 0; 53 }
转载于:https://www.cnblogs.com/algorithms/archive/2012/04/20/2459863.html
HDOJ1879(继续畅通工程)相关推荐
- [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)
L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...
- 并查集 HDOJ 1232 畅通工程
题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...
- 畅通工程//最小生成树prim
题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- 【1863】畅通工程 (HDU)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...
- 畅通工程 HDU - 1233
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...
- Kruskal HDOJ 1233 还是畅通工程
题目传送门 1 /* 2 最小生成树之kruskal算法--并查集(数据结构)实现 3 建立一个结构体,记录两点和它们的距离,依照距离升序排序 4 不连通就累加距离,即为最小生成树的长度 5 */ 6 ...
- hdu1879 继续畅通工程 最小生成树
继续畅通工程 此题明显属于最小生成树的题目 关于最小生成树,有两种方法,一种是Kruskal方法,一种是Prim算法,第一种用并查集即可实现 1 /* 2 hdu1879 3 2013-03-18 1 ...
- 题目1028:继续畅通工程
/********************************************* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...
最新文章
- 服务器论坛有哪些_SEO工作中,经常使用的无效外链有哪些?
- Binary Tree Preorder Traversal LeetCode OJ
- SQL语句执行顺序以及oracle基本查询优化
- Oracle - 查询语句 - 多表关联查询
- ubuntu 安装 ftp server
- 愚人节恶搞网页DIY
- 阿里云服务器安全组入方向和出方向默认规则
- 树莓派3b+和 intel movidius 神经元计算棒2代 跑yolo v3 tiny
- 狂神说Java系列视频教程之docker(记录到swarm安装)
- R语言第十讲 逻辑斯蒂回归
- eplan 电箱布局_Eplan D布局步骤
- 「Spring Boot」接口幂等性的4种实现方案
- GBASE数据库启动连接报908 错误
- 两台电脑共享上网(一台双网卡、一台单网卡)
- python爬虫开发与项目实战pdf下载_python爬虫开发与项目实战PDF高清文档下载
- 什么情况下运放才能用虚短和虚断的概念1、在开环电路中,输入两端的电压差非常小,不会让运放饱和2、在闭环的深度反馈电路中。
- 程序员英文简历范例(项目经理)
- 山东大学软件学院计算机组成原理实验3
- 做企业网站用好的自助建站系统,还得配好的虚拟主机空间
- python和php哪个好找工作_python和php哪个更有前景