博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU3371--Connect the Cities(最小生成树)
阅读量:4662 次
发布时间:2019-06-09

本文共 2245 字,大约阅读时间需要 7 分钟。

Problem Description

In 2100, since the sea level rise, most of the cities disappear. Though some survived cities are still connected with others, but most of them become disconnected. The government wants to build some roads to connect all of these cities again, but they don’t want to take too much money.  

Input

The first line contains the number of test cases.

Each test case starts with three integers: n, m and k. n (3 <= n <=500) stands for the number of survived cities, m (0 <= m <= 25000) stands for the number of roads you can choose to connect the cities and k (0 <= k <= 100) stands for the number of still connected cities.
To make it easy, the cities are signed from 1 to n.
Then follow m lines, each contains three integers p, q and c (0 <= c <= 1000), means it takes c to connect p and q.
Then follow k lines, each line starts with an integer t (2 <= t <= n) stands for the number of this connected cities. Then t integers follow stands for the id of these cities.

Output

For each case, output the least money you need to take, if it’s impossible, just output -1.

Sample Input

16 4 31 4 22 6 12 3 53 4 332 1 22 1 33 4 5 6

Sample Output

1

Author

dandelion

Source

HDOJ Monthly Contest – 2010.04.04

Recommend

lcy

又是最小生成树的裸题

这是代码

#include
#include
#define N 505#define INF 0x7ffffffint g[N][N];int low[N],vis[N];int n;int prim(){ int pos,res=0; memset(vis,0,sizeof(vis)); vis[1]=1; pos=1; for(int i=1;i<=n;i++) if(i!=pos) low[i]=g[pos][i]; for(int i=1;i
low[j]){ minn=low[j]; pos=j; } if(pos==-1) return -1; //注意这里 res+=minn; vis[pos]=1; //printf("**%d %d\n",pos,minn); for(int j=1;j<=n;j++) if(!vis[j] && low[j]>g[pos][j]) low[j]=g[pos][j]; } return res;}int main(void){ int t,m,k; int u,v,d; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&k); for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) g[i][j]=INF; for(int i=0;i
d) //notice g[u][v]=g[v][u]=d; } for(int i=0;i

转载于:https://www.cnblogs.com/liuzhanshan/p/6235426.html

你可能感兴趣的文章
修改git提交的用户名和密码
查看>>
Android Studio 生成aar包多Module引用问题
查看>>
AOP静态代理解析2-代码织入
查看>>
asp.net2.0导出pdf文件完美解决方案【转载】
查看>>
JavaWeb过滤器.监听器.拦截器-原理&区别(转)
查看>>
CentOS中yum安装ffmpeg
查看>>
2014ACM/ICPC亚洲区北京站题解
查看>>
logrotate命令
查看>>
C语言之字符、整数、数组、字符串笔记
查看>>
将tomcat设置在服务中为开机自动启动
查看>>
c#之使用单例模式实现数据库连接
查看>>
【JUC】JDK1.8源码分析之CopyOnWriteArraySet(七)
查看>>
editplus文本编辑器
查看>>
装饰器和闭包
查看>>
纸片折叠
查看>>
js类型判断:typeof与instanceof
查看>>
实验 8
查看>>
Django学习笔记--数据库中的单表操作----增删改查
查看>>
[洛谷P5075][JSOI2012]分零食
查看>>
第三次作业(第四次不要电梯了吧)
查看>>