1. 继续畅通工程
  2. Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
  3. Submit
  4.  
  5. Status
  6. Description
  7. 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。
  8.  
  9. Input
  10. 测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < N < );随后的 N(N-)/ 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建。
  11.  
  12. N0时输入结束。
  13.  
  14. Output
  15. 每个测试用例的输出占一行,输出全省畅通需要的最低成本。
  16.  
  17. Sample Input
  18.  
  19. Sample Output
  20.  
  21. 最小生成树,在并查集的基础上增加了一个排序,耗资从小到大,维护孤立村庄个数。
    AC代码:
  1. #include"iostream"
  2. #include"cstdio"
  3. #include"algorithm"
  4. #include"cmath"
  5. #include"cstring"
  6. using namespace std;
  7.  
  8. int pe[200];
  9. struct node {
  10. int a,b,m,ok;
  11. } vill[10000];
  12.  
  13. int find(int x) {
  14. return pe[x]==x?x:(pe[x]=find(pe[x]));
  15. }
  16.  
  17. bool cmpok(node a,node b) {
  18. if(a.ok!=b.ok) return a.ok>b.ok;
  19. //【一开始想着吧ok为1的全部放在前面,然后再按照m从小到大排列,后来发现不需要,也就没改了。】
  20. else return a.m<b.m;
  21. }
  22.  
  23. int main() {
  24. int n,m,num;
  25. long long money;
  26. while(~scanf("%d",&n)) {
  27. if(!n)break;
  28. money=0;
  29. num=n-1;
  30. for(int i=0; i<=n; i++) {
  31. pe[i]=i;
  32. }
  33. int nn=n*(n-1)/2;
  34. for(int i=0; i<nn; i++) {
  35. scanf("%d%d%d%d",&vill[i].a,&vill[i].b,&vill[i].m,&vill[i].ok);
  36. if(vill[i].ok) { //在这里直接把已经修好的路全部连起来
  37. int rt1=find(vill[i].a);
  38. int rt2=find(vill[i].b);
  39. if(rt1!=rt2) {
  40. pe[rt2]=rt1;
  41. num--;
  42. }
  43. }
  44. }
  45. sort(vill,vill+nn,cmpok);
  46. for(int i=0; i<nn; i++) {
  47. int rt1=find(vill[i].a);
  48. int rt2=find(vill[i].b);
  49. if(rt1!=rt2) { //如果没修路就修m最小的一条路,记录总金钱
  50. pe[rt2]=rt1;
  51. money+=vill[i].m;
  52. num--; //孤立的村庄的个数。
  53. if(num==0)break;
  54. }
  55. }
  56. printf("%I64d\n",money);
  57. }
  58. return 0;
  59. }

  

ACM: 继续畅通工程-并查集-最小生成树-解题报告的更多相关文章

  1. ACM: 还是畅通工程-并查集-最小生成树-解题报

    还是畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查乡村交通 ...

  2. ACM: meixiuxiu学图论-并查集-最小生成树-解题报告

    /* 最小生成树,最小环的最大权值按照排序后去构建最小生成树就可以了,注意遇到的第一个根相同的点就记录权值,跳出,生成的环就是最小权值环. */ //AC代码: #include"iostr ...

  3. hdu 1863 畅通工程 (并查集+最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    M ...

  4. HDU1863畅通工程---并查集+最小生成树

    #include<cstdio> #include<algorithm> #define MAX 105 struct edge { int from,to; long lon ...

  5. hdu 1233 还是畅通工程 并查集or最小生成树

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

  6. ACM: 畅通工程-并查集-解题报告

    畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某省调查城镇交通状况 ...

  7. 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)

    题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述:     省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...

  8. B - 畅通工程(并查集)

    对并查集理解之后就可以做这种题了,虽说这种题做的不多,这道题做过才这么快搞定,可是还是挺happy滴,加油 Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接 ...

  9. [HDOJ1232]畅通工程(并查集)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1232 题目描述 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表, ...

随机推荐

  1. 启动ip转法功能

    这种方法无需重启: [root@ha02 ~]# cat /proc/sys/net/ipv4/ip_forward [root@ha02 ~]# sysctl -w net.ipv4.ip_forw ...

  2. EF学习 笔记-----EF映射

    http://www.cnblogs.com/guomingfeng/archive/2013/06/15/mvc-ef-configuration-migration.html EF flountA ...

  3. Logcat打印调试信息

    Android Logcat调试中的V.D.I.W.E的分别代表什么? Log.v -- 黑色 -- verbose infoLog.d -- 蓝色 -- debug infoLog.i -- 绿色 ...

  4. 【Java环境变量的配置问题】

    首先是JVM.JRE.JDK三者之间的关系: java的跨平台性依赖于Java虚拟机:jvm(Java Virtual Machine),而jre(Java Runtime Environment,中 ...

  5. [LeetCode] Letter Combinations of a Phone Number

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  6. ASP.NET 自定义URL重写 分类: ASP.NET 2014-10-31 16:05 175人阅读 评论(0) 收藏

    一.功能说明: 可以解决类似 http://****/news 情形,Url路径支持正则匹配. 二.操作步骤: 1.增加URL重写模块: using System; using System.IO; ...

  7. 豆瓣的账号登录及api操作

    .douban.php <?php /** * PHP Library for douban.com * * @author */ class doubanPHP { function __co ...

  8. BPEL是个什么东东

    研究团队有个做智能服务组合的,其中用到叫BPEL的东西,因为全称是Business Process Execution Language,译成中文就是商业执行过程语言,这个东东的是整合SOA的一个执行 ...

  9. input按钮上传按钮样式

    主要是定位和不透明度来实现: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  10. Chage

    For many times,i've given my own a new lifestyle,such as don't stay up late,have breakfast......whil ...