1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5. const int MAX_N=;
  6. const int MAX_V=;
  7. const int MAX_Q=;
  8. struct edge{
  9. int from,to,cost;
  10. }es[MAX_N];
  11. int V,E,Q;
  12. bool comp(const edge &e1,const edge &e2)
  13. {
  14. return e1.cost < e2.cost;
  15. }
  16. void getMap()
  17. {
  18. for(int i=;i<E;i++)
  19. {
  20. scanf("%d %d %d",&es[i].from,&es[i].to,&es[i].cost);
  21. }
  22. sort(es,es+E,comp);
  23. }
  24. int par[MAX_V];
  25. int nodes[MAX_V];
  26. void Init()
  27. {
  28. for(int i=;i<=V;i++)
  29. {
  30. par[i]=i;
  31. nodes[i]=;
  32. }
  33. }
  34. int Find(int x)
  35. {
  36. if(par[x]==x)
  37. return x;
  38. return par[x]=Find(par[x]);
  39. }
  40.  
  41. struct Query{
  42. int limit;
  43. int index;
  44. }query[MAX_Q];
  45. bool comp1(Query q1,Query q2)
  46. {
  47. return q1.limit < q2.limit;
  48. }
  49. long long ans[MAX_Q];
  50. void Solve()
  51. {
  52. for(int i=;i<Q;i++)
  53. {
  54. scanf("%d",&query[i].limit);
  55. query[i].index=i;
  56. }
  57. sort(query,query+Q,comp1);
  58. long long sum=;
  59. int j=;
  60. for(int i=;i<Q;i++)
  61. {
  62. while(j<E&&query[i].limit>=es[j].cost)
  63. {
  64. int u=Find(es[j].from);
  65. int v=Find(es[j].to);
  66. if(u!=v)
  67. {
  68. sum+=*nodes[u]*nodes[v];
  69. par[u]=v;// 将u,v两集合合并,v为祖先
  70. nodes[v]+=nodes[u];
  71. }
  72. j++;
  73. }
  74. ans[query[i].index]=sum;
  75. }
  76. // 优化时间,将query全部输入之后再集体输出
  77. for(int i=;i<Q;i++)
  78. {
  79. printf("%I64d\n",ans[i]);
  80. }
  81. }
  82.  
  83. int main()
  84. {
  85. int t;
  86. scanf("%d",&t);
  87. while(t--)
  88. {
  89. scanf("%d %d %d",&V,&E,&Q);
  90. getMap();
  91. Init();
  92. Solve();
  93. }
  94. return ;
  95. }

HDOJ5441(图论中的并查集)的更多相关文章

  1. 【poj 1182】食物链(图论--带权并查集)

    题意:有3种动物A.B.C,形成一个"A吃B, B吃C,C吃A "的食物链.有一个人对N只这3类的动物有M种说法:第一种说法是"1 X Y",表示X和Y是同类. ...

  2. 【poj 1962】Corporative Network(图论--带权并查集 模版题)

    P.S.我不想看英文原题的,但是看网上题解的题意看得我 炒鸡辛苦&一脸懵 +_+,打这模版题的代码也纠结至极了......不得已只能自己翻译了QwQ . 题意:有一个公司有N个企业,分成几个网 ...

  3. 【poj 1984】&【bzoj 3362】Navigation Nightmare(图论--带权并查集)

    题意:平面上给出N个点,知道M个关于点X在点Y的正东/西/南/北方向的距离.问在刚给出一定关系之后其中2点的曼哈顿距离((x1,y1)与(x2,y2):l x1-x2 l+l y1-y2 l),未知则 ...

  4. 【bzoj 1202】[HNOI2005] 狡猾的商人(图论--带权并查集+前缀和)

    题意:一个账本记录了N个月以来的收入情况,现在有一个侦探员不同时间偷看到M段时间内的总收入,问这个账本是否为假账. 解法:带权并查集+前缀和.   判断账本真假是通过之前可算到的答案与当前读入的值是否 ...

  5. 【poj 1988】Cube Stacking(图论--带权并查集)

    题意:有N个方块,M个操作{"C x":查询方块x上的方块数:"M x y":移动方块x所在的整个方块堆到方块y所在的整个方块堆之上}.输出相应的答案. 解法: ...

  6. 【NOIP 2015 D1 T2】信息传递(图论--带权并查集/bfs)

    题目:有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学.游戏开始时,每人都只知道自己的生日.之后每一轮中, ...

  7. 【uva 247】Calling Circles(图论--Floyd 传递闭包+并查集 连通分量)

    题意:有N个人互相打了M次电话,请找出所有电话圈(Eg.a→b,b→c,c→d,d→a 就算一个电话圈)并输出.(N≤25,L≤25,注意输出格式) 解法:由于N比较小所有n^2或n^3的复杂度都没有 ...

  8. 图论 Kruskal算法 并查集

    #include<iostream> #include<cstring> #include<string> #include<cstdio> #incl ...

  9. 洛谷P1525 关押罪犯(并查集、二分图判定)

    本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...

随机推荐

  1. spring bean标签常用属性

    一.id属性 其名称,可以是任意名称,但不能包含特殊符号. 根据id得到配置对象. 二.class属性 创建对象所在的类名称 三.name属性 功能和id属性一样,但name属性值可以包含特殊属性 四 ...

  2. ros下单目相机校正

    1. 安装对应的驱动与程序包. 图像对应包   http://wiki.ros.org/camera_calibration          在gitbub下载image_pipeline :    ...

  3. FTP开启被动连接模式

    在Linux环境下搭建ftp服务器,具体步骤见:http://www.cnblogs.com/zjiacun/p/6896803.html 配置被动连接的方法: 找到配置文件/etc/vsftpd/v ...

  4. CENTOS7 修改网卡名称为eth[012...],格式

    具体操作是修改/etc/default/grub文件 在GRUB_CMDLINE_LINUX一行中添加net.ifnames=0 biosdevname=0 保存文件后然后运行 grub2-mkcon ...

  5. 了解CentOS服务器的基本信息

    简单描述了如何从CPU.内存.硬盘性能.负载方面去了解自己工作的服务器性能.这个很重要,必须了解机器的方方面面才能提高在自己运维工作效率. 一.查看linux服务器cpu详情 查看物理cpu个数: [ ...

  6. Linux 3 -grep

    七. grep家族: 1. grep退出状态: 0: 表示成功: 1: 表示在所提供的文件无法找到匹配的pattern: 2: 表示参数中提供的文件不存在. 见如下示例: /> grep 'ro ...

  7. mathjax

    MathJax.Hub.Typeset() method. This will cause the preprocessors (if any were loaded) to run over the ...

  8. iOS UIImage UIImageView 展示图片 不变形 处理

    展示图片 时候 固定 了 imageView  的大小  图片 也裁剪了 尽量保持比例 可是 还是失真 变形了 这张图 ui 要求展示的UIimageView 大小 是固定 的  ,传过来的 图片 是 ...

  9. Windows下Nginx的启动、停止等命令添加

    Windows下Nginx的启动.停止等命令在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启动 ...

  10. Base64Util工具类

    package com.qianmi.weidian.common.util; import java.io.*; /** * This class provides encode/decode fo ...