题目链接

最小生成树的题。克鲁斯卡尔算法。

View Code

 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(继续畅通工程)相关推荐

  1. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

  2. 并查集 HDOJ 1232 畅通工程

    题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...

  3. 畅通工程//最小生成树prim

    题目: 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  4. 【1863】畅通工程 (HDU)

     畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  5. HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...

  6. 畅通工程 HDU - 1233 

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可 ...

  7. Kruskal HDOJ 1233 还是畅通工程

    题目传送门 1 /* 2 最小生成树之kruskal算法--并查集(数据结构)实现 3 建立一个结构体,记录两点和它们的距离,依照距离升序排序 4 不连通就累加距离,即为最小生成树的长度 5 */ 6 ...

  8. hdu1879 继续畅通工程 最小生成树

    继续畅通工程 此题明显属于最小生成树的题目 关于最小生成树,有两种方法,一种是Kruskal方法,一种是Prim算法,第一种用并查集即可实现 1 /* 2 hdu1879 3 2013-03-18 1 ...

  9. 题目1028:继续畅通工程

    /********************************************* 题目描述:省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...

最新文章

  1. 服务器论坛有哪些_SEO工作中,经常使用的无效外链有哪些?
  2. Binary Tree Preorder Traversal LeetCode OJ
  3. SQL语句执行顺序以及oracle基本查询优化
  4. Oracle - 查询语句 - 多表关联查询
  5. ubuntu 安装 ftp server
  6. 愚人节恶搞网页DIY
  7. 阿里云服务器安全组入方向和出方向默认规则
  8. 树莓派3b+和 intel movidius 神经元计算棒2代 跑yolo v3 tiny
  9. 狂神说Java系列视频教程之docker(记录到swarm安装)
  10. R语言第十讲 逻辑斯蒂回归
  11. eplan 电箱布局_Eplan D布局步骤
  12. 「Spring Boot」接口幂等性的4种实现方案
  13. GBASE数据库启动连接报908 错误
  14. 两台电脑共享上网(一台双网卡、一台单网卡)
  15. python爬虫开发与项目实战pdf下载_python爬虫开发与项目实战PDF高清文档下载
  16. 什么情况下运放才能用虚短和虚断的概念1、在开环电路中,输入两端的电压差非常小,不会让运放饱和2、在闭环的深度反馈电路中。
  17. 程序员英文简历范例(项目经理)
  18. 山东大学软件学院计算机组成原理实验3
  19. 做企业网站用好的自助建站系统,还得配好的虚拟主机空间
  20. python和php哪个好找工作_python和php哪个更有前景

热门文章

  1. mysql中的boolean tinyint
  2. React开发(228):ant design table根据宽度自动忽略
  3. 前端小知识点(9):函数和对象之间的关系
  4. [vue] vue组件之间的通信都有哪些?
  5. [css] 使用css实现一个loading的效果
  6. 前端学习(1951)vue之电商管理系统电商系统之获取父级数据列表
  7. 前端学习(1340):mongoose验证规则
  8. 前端学习(1154):常量const02
  9. 前端学习(610):js执行过程
  10. 前端学习(64):css继承属性小结