#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;

   }

最新文章

  1. [Asp.net]Uploadify上传大文件,Http error 500 解决方案
  2. javase基础复习攻略《七》
  3. iOS 10 UserNotifications 框架解析
  4. c#读取INI文件类
  5. Eclipse 中打不开android sdk managerf
  6. POJ 1185 (状态压缩DP)
  7. Androidannotation使用之@Rest与server交互的JSON数据转换(二)
  8. ashx页面 “检测到有潜在危险的 Request.Form 值”的解决方法(控制单个处理程序不检测html标签)
  9. MySql数据库1【概念】
  10. (转)Facade模式
  11. Android 随着输入框控件的清除功能ClearEditText,抄IOS输入框
  12. XAF_GS_01_准备环境
  13. git多个远程仓库
  14. 【足迹C++primer】32、定制操作_2
  15. python全栈开发day55-mysql外键的三种变种
  16. 第一章:初识Python
  17. android 管理fragment
  18. Eclipse使用xdoclet1.2.3 生成hibernate配置文件和映射文件
  19. Hibernate开发环境搭建
  20. C++数组与指针回顾总结

热门文章

  1. nodejs+multiparty 文件上传
  2. 浅议block实现原理,block为什么使用copy关键字?
  3. 【转】Android中实现IPC的几种方式详细分析及比较
  4. html语法第 -2
  5. nginx 的编译安装及基本操作
  6. 【2019.6.2】python:json操作、函数、集合、random()等
  7. sqlserver差异备份3117
  8. SQL的几种连接
  9. How far away?
  10. [CF] 950A Left-handers, Right-handers and Ambidexters