#include<stdio.h>

#include<stdlib.h>

#define N 501

struct node {

int x,y,dis;

}road[N*N];

int pre[N];

int find (int n ) {

return pre[n]=n==pre[n]?n:find(pre[n]);

}

int cmp(const void *a,const void *b) {

return (*(struct node *)a).dis>(*(struct node *)b).dis?1:-1;

}

int main() {

       int n,m,k,t,a,b,c,cnt,sum,flag,i,j,len,f1,f2;

   scanf("%d",&t);

   while(t--) {

  scanf("%d%d%d",&n,&m,&k);

  for(i=1;i<=n;i++)

  pre[i]=i;

  for(i=0;i<m;i++) {

  scanf("%d%d%d",&a,&b,&c);

  road[i].x=a;

  road[i].y=b;

  road[i].dis=c;

  }

  sum=0;

  cnt=0;

  qsort(road,m,sizeof(road[0]),cmp);

  while(k--) {

  scanf("%d%d",&len,&a);

  f1=find(a);

  len--;

  while(len--) {

  scanf("%d",&b);

  f2=find(b);

  if(f1!=f2) {

  cnt++;

 

  pre[f2]=f1;

  }

  }

  }

  for(i=0;cnt<n&&i<m;i++) {

  f1=find(road[i].x);

  f2=find(road[i].y);

  if(f1!=f2) {

  cnt++;

  sum+=road[i].dis;

  pre[f2]=f1;

  }

  }

  if(cnt==n-1)

  printf("%d\n",sum);

  else

  printf("-1\n");

  }

  return 0;

   }

hdu 3371的更多相关文章

  1. hdu 3371 Connect the Cities

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3371 Connect the Cities Description In 2100, since th ...

  2. hdu 3371 Connect the Cities (最小生成树Prim)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3371 题目不难 稍微注意一下 要把已经建好的城市之间的花费定义为0,在用普通Prim算法就可以了:我没 ...

  3. Hdu 3371 Connect the Cities(最小生成树)

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=3371 其实就是最小生成树,但是这其中有值得注意的地方:就是重边.题目没有告诉你两个城市之间只有一条路可走, ...

  4. HDU 3371 Connect the Cities(prim算法)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3371 Problem Description In 2100, since the sea leve ...

  5. hdu 3371 Connect the Cities(最小生成树)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3371 984ms风险飘过~~~ /************************************ ...

  6. hdu 3371(prim算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3371 Connect the Cities Time Limit: 2000/1000 MS (Jav ...

  7. HDU 3371 Connect the Cities(并查集+Kruskal)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=3371 思路: 这道题很明显是一道最小生成树的题目,有点意思的是,它事先已经让几个点联通了.正是因为它先 ...

  8. HDU 3371 kruscal/prim求最小生成树 Connect the Cities 大坑大坑

    这个时间短 700多s #include<stdio.h> #include<string.h> #include<iostream> #include<al ...

  9. HDU 3371(城市联通 最小生成树-Kruskal)

    题意是求将所有点联通所花费的最小金额,如不能完全联通,输出 -1 直接Kruskal,本题带来的一点教训是 rank 是algorithm头文件里的,直接做变量名会导致编译错误.没查到 rank 的具 ...

  10. HDU 3371 Connect the Cities 最小生成树(和关于sort和qsort的一些小发现)

    解题报告:有n个点,然后有m条可以添加的边,然后有一个k输入,表示一开始已经有k个集合的点,每个集合的点表示现在已经是连通的了. 还是用并查集加克鲁斯卡尔.只是在输入已经连通的集合的时候,通过并查集将 ...

随机推荐

  1. AJPFX关于面向对象之封装,继承,多态 (下)

    (3)private: 对于对于成员来说:只能在该成员隶属于的类中访问. 对于类来说:类不可以声明为private. 4)protected: 对于对于成员来说:相同包中的类可以访问(包访问权限):基 ...

  2. (3)《Head First HTML与CSS》学习笔记---CSS入门

    1.O‘Reilly的<CSS PocketReference>是一本不错的CSS参考小书,记录了常用的元素属性. 2.元素选择器的作用强于继承的作用:用户定义强于浏览器默认(以下所有讨论 ...

  3. js实现跨域的方法

    由于同源策略的限制,XMLHttpRequest只允许请求当前源(包含域名.协议.端口)的资源. json与jsonp的区别:    JSON是一种数据交换格式,而JSONP是一种依靠开发人员创造出的 ...

  4. CentOS下JRE环境变量配置

    很多时候,我们需要在CentOS上部署tomcat,从而搭建web服务器,然JDK/JRE环境是前提,这里就记录一下,在后面的时候直接使用. 下载jre-7u80-linux-x64.tar.gz,并 ...

  5. 【HEVC简介】SAO-Sample Adaptive Offset, 样本自适应偏移量

    paper: Sample Adaptive Offset for HEVC <HEVC标准介绍.HEVC帧间预测论文笔记>系列博客,目录见:http://www.cnblogs.com/ ...

  6. loadrunner11报错:Error -27780

    LR回放https协议脚本失败:[GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX" failed:[10054] Connection ...

  7. H3C S5024P交换机 H3C AR28-31路由器命令

    H3C S5024P交换机 H3C AR28-31路由器命令 交换机命令 各个视图的切换: 注意命令要在相应的视图下执行 在用户视图下键入quit命令可以断开与交换机的连接.在其它视图中键入quit命 ...

  8. pylint安装失败的解决方法

    原文链接http://www.cnblogs.com/Loonger/p/7815335.html 使用命令pip3 install pylint安装pylint是出现错误.查了一圈也找不到答案.仔细 ...

  9. Pygame - Python游戏编程入门

    >>> import pygame>>> print(pygame.ver)1.9.2a0 如果没有报错,应该是安装好了~ 如果报错找不到模块,很可能是安装版本的问 ...

  10. 使用plsql导入dmp文件缺少imp*.exe

    在C:\app\Administrator\product\11.2.0\client_2\BIN 找到imp.exe 导入