布线问题

时间限制: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

思路:利用prime算法求出最小生成树,然后sort排序,求得最终的最小花费代价。

ac代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define INF 0x3f3f3f
using namespace std;
int vis[1010],map[1010][1010],dis[1010];
int n,m;
void ini(){for(int i=0;i<1010;i++){for(int j=0;j<1010;j++){if(i!=j)map[i][j]=map[j][i]=INF;elsemap[i][j]=0;}}
}
int prime(){memset(vis,0,sizeof(vis));for(int i=1;i<=n;i++)dis[i]=map[1][i];vis[1]=1;int sum=0;for(int i=1;i<n;i++){int j,k,temp=INF;for(j=1;j<=n;j++)if(!vis[j]&&dis[j]<temp)temp=dis[k=j];vis[k]=1;sum+=temp;for(j=1;j<=n;j++)if(!vis[j]&&dis[j]>map[k][j])dis[j]=map[k][j];   }return sum;
}
int main(){int T,cost[1010];scanf("%d",&T);   while(T--){scanf("%d%d",&n,&m);ini();for(int i=0;i<m;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);map[a][b]=map[b][a]=c;}int ans=prime();for(int i=0;i<n;i++)scanf("%d",&cost[i]);sort(cost,cost+n);ans+=cost[0];printf("%d\n",ans);   }return 0;
} 

nyoj--38--布线问题相关推荐

  1. NYOJ 38 布线问题

    布线问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件: 1.把所有的 ...

  2. NYOJ 30 Gone Fishing JAVA+解析

    Gone Fishing这道题目运用的多次折合成一次这种思想我首次见,我想的一个思路是,每次算一下鱼量和时间代价比,这个代码我没有敲,下面的代码是一位仁兄敲得,我研读了一下,做了一个注释,应该有利于后 ...

  3. 1231 最优布线问题

    1231 最优布线问题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 学校需要将n台计算机连接起来,不同的2台计算机之间的连接 ...

  4. hdu-2204 Eddy's爱好 nyoj 526

    hdu : http://acm.hdu.edu.cn/showproblem.php?pid=2204 nyoj :  http://acm.nyist.net/JudgeOnline/proble ...

  5. NYOJ 99单词拼接(有向图的欧拉(回)路)

    1 /* 2 NYOJ 99单词拼接: 3 思路:欧拉回路或者欧拉路的搜索! 4 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 5 有向图的欧拉 ...

  6. nyoj 题目5 Binary String Matching

    Binary String Matching 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 Given two strings A and B, whose alpha ...

  7. 封装 电流密度 重布线_电子封装陶瓷基板(3/5)

    你不点蓝字,我们哪来故事? 本文来源:<现代技术陶瓷>,2019,40(04):265-292作       者:程浩,陈明祥,罗小兵,彭洋,刘松坡作者单位:华中科技大学,武汉利之达科技股 ...

  8. 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题...

    1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...

  9. 计算机综合布线实验报告,综合布线设计实验报告.doc

    综合布线设计实验报告.doc 桂林电子科技大学综合布线实验报告实验名称布线工程图设计制作实验辅导员意见电子信息工程系通信技术专业班第2实验小组作者张三学号091同作者辅导员实验日期2011年5月31日 ...

  10. 弱电计算机网络系统技术交底,弱电综合布线施工技术交底.doc

    弱电综合布线施工技术交底 弱电综合布线工程施工技术交底 一.施工准备 (1)技术准备 (1)详读图纸,对弱电管线及终端结合现场进行放线定位. (2)弱电施工在墙面抹灰与天花吊顶封板前进行. (3)施工 ...

最新文章

  1. 数据中心系统管理员基础知识培训
  2. 过年装X神器,快速获取 wifi 密码!
  3. ios 上传图片到阿里云的oss_JEECG BOOT 上传如何同时支持阿里OSS、Minio、本地存储
  4. 堆之大,ZGC亦可速清也!
  5. 俞敏洪回应新东方股价跌破1美元
  6. 手动安装cloudera cdh4.2 hadoop + hbase + hive(一)
  7. 在Eclipse中配置NDK自动编译环境builders
  8. ARC官方文档翻译! - iPhone App开发外包专区 - 威锋论坛 - 威锋网
  9. iOS gif加载视图
  10. 微服务架构学习与思考(04):微服务技术体系
  11. FPGA IP核之FIFO
  12. 彻底清除狗太阳的3721病毒完全手册!
  13. Django06 后台管理
  14. java.lang.IllegalStateException: Migration didn‘t properly handle
  15. ThreadLocal的短板,我TTL来补
  16. 青龙面板+Ninja的企业微信通知设置以及企业微信群消息转到微信方法
  17. 海思3559:百兆网口的配置
  18. 性格色彩测试android程序开发之九--sqlite数据库
  19. 学习拓展中国剩余定理小结
  20. 为什么我们选择基于 Flink 搭建实时个性化营销平台?

热门文章

  1. pytorch笔记-实现一个图像分类模型
  2. Python之父加入微软,一开口就知道是老“凡学家”了
  3. 电子工业出版社博文视点在2010年系统架构师大会上集锦
  4. IT技术人需要具备哪些才能成功
  5. 76----平面二次曲线的分类、消去二次交叉项、转轴变换、平面二次曲线的不变量、利用不变量确定平面二次曲线的类型和形状
  6. hive查看表中列的信息命令_走近大数据之Hive入门(四、Hive的管理)
  7. vmware屏幕不能适应窗口
  8. 排序算法java 简书_常用的排序算法(Java版)
  9. 蓝桥杯2021年第十二届C++省赛第四题-货物摆放
  10. gcd 最大公约数 和 lcm 最小公倍数