题目传送门

  1. /*
  2. 此题为:HDOJ 1233 + HDOJ 1232
  3. */
  4. #include <cstdio>
  5. #include <algorithm>
  6. #include <cstring>
  7. #include <cmath>
  8. using namespace std;
  9. const int MAX_N = + ;
  10. int pre[MAX_N];
  11. int tot;
  12. int sum;
  13. struct NODE
  14. {
  15. int x, y;
  16. int len;
  17. }node[MAX_N];
  18. int find(int root)
  19. {
  20. int son, tmp;
  21. son = root;
  22. while (root != pre[root])
  23. {
  24. root = pre[root];
  25. }
  26. while (son != root)
  27. {
  28. tmp = pre[son];
  29. pre[son] = root;
  30. son = tmp;
  31. }
  32. return root;
  33. }
  34. bool cmp(NODE a, NODE b)
  35. {
  36. return a.len < b.len;
  37. }
  38. int main(void) //HDOJ 1863 畅通工程
  39. {
  40. //freopen ("inC.txt", "r", stdin);
  41. int n, m; //n路, m村庄
  42. while (~scanf ("%d%d", &n, &m) && n)
  43. {
  44. tot = m - ;
  45. for (int i=; i<=m; ++i)
  46. {
  47. pre[i] = i;
  48. }
  49. for (int i=; i<=n; ++i)
  50. {
  51. scanf ("%d%d%d", &node[i].x, &node[i].y, &node[i].len);
  52. }
  53. sort (node+, node++n, cmp);
  54. sum = ;
  55. for (int i=; i<=n; ++i)
  56. {
  57. int a, b;
  58. a = find (node[i].x);
  59. b = find (node[i].y);
  60. if (a != b)
  61. {
  62. pre[a] = b;
  63. sum += node[i].len;
  64. --tot;
  65. }
  66. }
  67. if (tot == )
  68. printf ("%d\n", sum);
  69. else
  70. puts ("?");
  71. }
  72. }

Kruskal HDOJ 1863 畅通工程的更多相关文章

  1. hdoj 1863 畅通工程

    并查集+最小生成树 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  2. hdoj 1863 畅通工程 最小生成树---prime算法

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=1863 注意有可能出现无法生成树的情况. #include <iostream> #inclu ...

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

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

  4. 并查集 HDOJ 1232 畅通工程

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

  5. HDU 1863 畅通工程(Prim,Kruskal,邻接表模板)

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

  6. HDU 1863 畅通工程 -Kruskal模版

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

  7. hdu 1863 畅通工程(Kruskal+并查集)

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

  8. hdu 1863 畅通工程 (并查集 、 kruskal)

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

  9. HDU 1863 畅通工程(Kruskal)

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

随机推荐

  1. DRF框架

    1.RESTful规范 1.1 REST风格:表属性状态转移 1.1.1资源:在web中凡是有被引用的必要的都叫资源 1.1.2 URI:统一资源标识符    URI包含URL 1.1.3 URL:统 ...

  2. HDU 6096 String 排序 + 线段树 + 扫描线

    String Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Problem De ...

  3. Oracle Exception

    Oracle存储过程的异常处理 1.为了提高存储过程的健壮性,避免运行错误,当建立存储过程时应包含异常处理部分.2.异常(EXCEPTION)是一种PL/SQL标识符,包括预定义异常.非预定义异常和自 ...

  4. 20170225 ABAP获取字符串长度/字节长度

    函数YGET_CHAR_LONG: FUNCTION YGET_CHAR_LONG. *"-------------------------------------------------- ...

  5. JSP 用poi 读取Excel

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. 移动web开发适配rem

    移动的meta标签 <meta  name="viewport" content="width=device-width, initial-scale=1,user ...

  7. ios实现倒计时的两种方法

    方法1:使用NSTimer来实现 主要使用的是NSTimer的scheduledTimerWithTimeInterval方法来每1秒执行一次timeFireMethod函数,timeFireMeth ...

  8. 一步一步学Silverlight 2系列(14):数据与通信之WCF

    一步一步学Silverlight 2系列(14):数据与通信之WCF   概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框 ...

  9. 从BadBoy导入脚本并调试

    一. 利用BadBoy录制自动化脚本,录制事件为禅道中创建bug 在badboy地址栏输入被访问的URL地址 录制成功后截图如下: 录制完成后在badboy窗口中回放确定脚本录制的正确性,回放成功后清 ...

  10. 【USACO06NOV】路障

    [题目链接] 点击打开链接 [算法] 最短路 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 5000 #de ...