布线问题

时间限制:1000 ms  |  内存限制:65535 KB
难度:4
 
描述
南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:
1、把所有的楼都供上电。
2、所用电线花费最少
 
输入
第一行是一个整数n表示有n组测试数据。(n<5)
每组测试数据的第一行是两个整数v,e.
v表示学校里楼的总个数(v<=500)
随后的e行里,每行有三个整数a,b,c表示a与b之间如果建铺设线路花费为c(c<=100)。(哪两栋楼间如果没有指明花费,则表示这两栋楼直接连通需要费用太大或者不可能连通)
随后的1行里,有v个整数,其中第i个数表示从第i号楼接线到外界供电设施所需要的费用。( 0<e<v*(v-1)/2 )
(楼的编号从1开始),由于安全问题,只能选择一个楼连接到外界供电设备。
数据保证至少存在一种方案满足要求。
输出
每组测试数据输出一个正整数,表示铺设满足校长要求的线路的最小花费。
样例输入
1
4 6
1 2 10
2 3 10
3 1 10
1 4 1
2 4 1
3 4 1
1 3 5 6
样例输出
4
来源
[张云聪]原创
上传者
张云聪
基础题型.....一个字 水
代码:
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
const int maxn=; int father[maxn]; //根
int rank[maxn]; //秩
int n,v,e; struct luo{
int from;
int to;
int val;
}str[];
bool operator < (const luo &a ,const luo &b)
{
return a.val<b.val; //采用从小到大的顺序排列
}
void init()
{
int i;
for( i=; i<=maxn ;i++){
father[i]=i;
rank[i]=;
}
} int setfind(int x)
{
while(x!=father[x])
x=father[x];
return x;
} void setunion(int aa,int bb)
{
if(rank[aa]>rank[bb]){
father[bb]=aa;
rank[aa]+=rank[bb];
}
else{
father[aa]=bb;
rank[bb]+=rank[aa];
}
} int main()
{
int n,v,e,i;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&v,&e);
for(i=;i<e ;i++)
scanf("%d%d%d",&str[i].from,&str[i].to,&str[i].val);
sort(str,str+e);
int aa,bb,ans;
ans=;
init(); //初始化
for(i=;i<e ;i++)
{
aa=setfind(str[i].from);
bb=setfind(str[i].to);
if(aa!=bb){
ans+=str[i].val;
setunion(aa,bb);
}
}
int minc=0x3f3f3f3f,tem;
for(i=;i<v;i++)
{
scanf("%d",&tem);
if(tem<minc)minc=tem;
}
printf("%d\n",ans+minc);
}
return ;
}

最新文章

  1. 解密jQuery内核 Sizzle引擎筛选器 - 位置伪类(一)
  2. ES6详解
  3. ecshop 配送方式支持&quot;货到付款&quot;
  4. Caffe 源碼閱讀(三) caffe.cpp
  5. C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
  6. 使用Sqlserver Management Studio 导入导出 Excel的方法
  7. JAVA 静态代码块
  8. C# 对Excel文档打印时的页面设置
  9. python学习笔记二--列表的使用
  10. 拖拽加点ui吧
  11. Gridview 重建表头/单击单元格弹出对话框/改变单元格背景色
  12. 放大镜原生js
  13. python之地基(二)
  14. 赶集网三年 DBA 总结(转)
  15. MySQL高性能优化实战总结!
  16. Linux ISO镜像挂载
  17. Linux常用基本命令:三剑客命令之-awk模式用法(1)
  18. fetch 代替 XMLHttpRequest (json-server 模拟后台接口)
  19. 2017中国人工智能公司榜单发布,颠覆AT的AI独角兽全在这
  20. Enhance基本例子

热门文章

  1. sql默认启动密码
  2. 通过EasyUI Tree说明SQL GUID和自增列ID的使用场景
  3. flex布局注意点:
  4. VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
  5. css 集锦。
  6. idea编辑器HttpServlet httpServlet = ServletActionContext.getServletContext().getRealPath();方法无法使用
  7. DOM 操作XML(CRUD)
  8. openstack 网卡
  9. 用Maven创建第一个项目
  10. (三)ubuntu学习前传—uboot常见环境变量