布线问题

时间限制: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<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#define inf 0x3f3f3f3
using namespace std;
int f[1000];
struct node
{int u,v,w;
} d[1000000];
int fin(int x)
{if(f[x]!=x)return f[x]=fin(f[x]);elsereturn x;
}
int LA(int x,int y)
{int p=fin(x);int q=fin(y);if(q!=p){f[q]=p;return 0;}elsereturn 1;
}
bool cmp(node m,node n)
{return m.w<n.w;
}
int main()
{int t;cin>>t;while(t--){int n,m;cin>>n>>m;memset(d,0,sizeof(d));for(int i=0; i<=n; i++)f[i]=i;int j=0;for(int i=1; i<=m; i++){cin>>d[j].u>>d[j].v>>d[j].w;j++;}int maxx=inf;int y=0;for(int i=1;i<=n;i++){int x;cin>>x;if(x<maxx){maxx=x;y=i;}}d[j].w=maxx;d[j].u=y;d[j].v=0;j++;int ans=0;int cnt=0;sort(d,d+j,cmp);for(int i=0; i<j; i++){if(LA(d[i].u,d[i].v)==0){cnt++;ans+=d[i].w;}if(cnt==n)//n+1个点n条边。break;}cout<<ans<<endl;}
}        

Nyoj38布线问题相关推荐

  1. dotnet 一些代码审查套路

    本文记录一些代码审查套路,在看到小伙伴写出某些代码的时候可以告诉他这样写有锅 我在各个项目里面进行代码审查,我维护了很多个项目 这是我截图某一天的一个核心项目的在 Gitlab 上的 MR 情况,我觉 ...

  2. WPF 调用 InvalidateVisual 不触发 OnRender 的原因

    我昨天和头像大人在解决一个坑,发现调用了 InvalidateVisual 的时候,不会触发 OnRender 方法.那么在什么时候会触发 OnRender 方法,在什么时候不会触发 在 WPF 中通 ...

  3. Prim算法(最小生成树;例题:nyoj38)

    Prim:求最小生成树的另一个算法 还可以用Kruskal(https://blog.csdn.net/Radium_1209/article/details/80503384) 与Kruskal的不 ...

  4. 16 导出pcb各网络的布线长度_设计PCB流程

    1. 准备--功能确定.元器件选型(主要核心元器件) 2. 元件库建立--元器件符号.元器件封装 3. 绘制原理图--根据电路功能,将元器件符号进行连接 4. 导出网络表--将元器件的连接关系,以及元 ...

  5. ENJOYLink欢联,以独创技术满足数据中心布线

    [导读]对于占有一栋建筑物或一个建筑群的数据中心来说,如何进行布线尤其关键. 随着各行各业对大数据技术的需求日益增长,数据中心新一轮快速发展已经开始.作为数据中心的基础设施,综合布线系统既要满足机房网 ...

  6. 松江主机点位怎么预留_智能家居设计篇:智能化布线怎么做到有备无患

    [摘要]大家对自己新房的装修总是充满着期待,也有对智能家居向往却又不愿投入太多. | 智 | 装 | 小| 站 | 中国智能家居行业第一自媒体 本文来源:科学讲 特别是对于有所了解的朋友,总觉得智能家 ...

  7. 高密度(HD)电路的设计 (主指BGA封装的布线设计)

    高密度(HD)电路的设计 (主指BGA封装的布线设计) 本文介绍,许多人把芯片规模的BGA封装看作是由便携式电子产品所需的空间限制的一个可行的解决方案,它同时满足这些产品更高功能与性能的要求.为便携式 ...

  8. 六类布线六大注意事项

    六类布线系统在传输速率上可提供高于超五类2.5倍的高速带宽,在100MHz时高于超五类300%的ACR值.在施工安装方面,六类比超五类难度也要大很多. 六类布线系统的施工人员必须按照国际标准要求的规范 ...

  9. 网吧电源和网络布线经验谈(1)

    网吧目前所提供的服务,像网页浏览.网络游戏.在线电影.远程教育等最基本的服务都与网络有关,网络质量的好坏直接决定了网吧的生存能力.所以,如何规划一个优质的网络环境,是网吧经营者必须要考虑的一个要点,其 ...

最新文章

  1. python模拟高并发_Python基于gevent实现高并发代码实例
  2. 前端安全之CSRF攻击
  3. 【ES6】ES6编程规范 编程风格
  4. Marcin Grzejszczak访谈:Spring Cloud Contract
  5. 5G VoNR — Overview
  6. 深入理解Hadoop YARN中的Container概念
  7. SQLServer2005出了点怪事~(应该是编码问题~)
  8. C# 解析JSON格式数据
  9. webpack打包vue项目IE报错,“对象不支持“use”属性或方法”
  10. cdcq原创题--pcr技术
  11. mongodb数据检索大全
  12. 如何自己重装系统win7
  13. 如何搜集你想要的信息
  14. UEBA案例分析系列之数据泄露检测
  15. 密码学笔记1-信息安全的基本属性(机密性、认证、完整性、不可否认性)
  16. 常见的SQL面试题: 经典50题
  17. 用turtle画只小熊猫
  18. Ubuntu 10.10安装配置指南Ubuntu 11.10 图形安装教程
  19. 微软账户登入显示空白框,无法创建用户
  20. android 闪光灯程序,如何在Android中以编程方式打开前闪光灯?

热门文章

  1. 什么是Android——Android平台简介
  2. Android P阻止调用非sdk api后,Atlas该何去何从
  3. 数据结构和算法 java实现_数据结构与算法——常用数据结构及其Java实现
  4. Nik Collection for Mac 中文版合集 v1.2.8.0 破解版 PS滤镜
  5. 王者荣耀显示聊天服务器异常,王者荣耀为爱向前冲活动异常说明
  6. 论文阅读 Knowledge Graph Embedding via Graph Attenuated Attention Networks
  7. java面试题26-107(答案)_Java面试题汇总,160道带你征战大厂
  8. futureTask用法
  9. C++设计模式(二)(摘录)
  10. SSM整合的配置+功能模块+测试