题目


YYH拿到了父亲给的钱欣喜若狂,把这些钱拿来造了n栋房子。现在他要给这些房子通电。他有两种方法:第一种是在房间里搭核电发电机发电,对于不同的房子,他需要花不同的代价Vi;,第二种是将有电的房子i的电通过电线通到没电的房子j中,这样子他需要花的代价为aij。他现在请你帮他算出他最少要花多少钱才能让所有的房子通上电。

输入格式:

第一行为一个整数 n。接下来的n行为 n 个整数vi,再接下来的n行每行n个数,第i行第j列的数表示aij

输出格式:

一个整数,表示最小代价。

样例输入:

4

5

4

4

3

0 2 2 2

2 0 3 3

2 3 0 4

2 3 4 0

样例输出:

9

题解


把用核电发电机发电的房子看作与一个有电的0号房子相连,用最小生成树解决。(看懂了题目,就觉得其实挺水的……)

数据范围很小,直接Kruskal或者Prim都行。

代码


 #define FileIO(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout);
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define N 305
int n,m=,f[N];
struct edge{int s,t,w;}e[];
int find(int x) {
return ~f[x]?f[x]=find(f[x]):x;
}
inline bool join(int a,int b) {
int x=find(a),y=find(b);
if(x==y) return false;
f[x]=y;return true;
}
bool cmp(edge a,edge b) {
return a.w<b.w;
}
int kruskal() {
int cnt=n,ans=;
memset(f,~,sizeof(f));
std::sort(e,e+m,cmp);
for(int i=;i<m;++i) {
if(join(e[i].s,e[i].t)) {
ans+=e[i].w;
if(!--cnt) return ans;
}
}
return -;
}
int main() {
FileIO("zzi");
int a;
scanf("%d",&n);
for(int i=;i<=n;++i) {
scanf("%d",&a);
e[m++]={,i,a};
}
for(int i=;i<=n;++i) {
for(int j=;j<=n;++j) {
scanf("%d",&a);
if(i<j) e[m++]={i,j,a};
}
}
printf("%d",kruskal());
return ;
}

Code

最新文章

  1. XSS攻击及防御
  2. docker-freebsd-20150625
  3. pthread 学习
  4. Android 自定义View及其在布局文件中的使用示例(三):结合Android 4.4.2_r1源码分析onMeasure过程
  5. 记一个全局变量&quot;冒充&quot;局部变量引起的bug
  6. leetcode 315. Count of Smaller Numbers After Self 两种思路(欢迎探讨更优解法)
  7. maven项目导入,包名出现异常-多出一个java的前缀
  8. poj 2019 二维rmq *
  9. SQL语句创建表和数据库
  10. homework-02 二维的,好喝的(二维数组的各种子数组)
  11. WPF仿微软事件和属性窗体,效果更炫!
  12. C语言学习笔记(二):指针的用法
  13. Python-字符串开头或结尾匹配
  14. orchard相关网址
  15. [Swift]LeetCode329. 矩阵中的最长递增路径 | Longest Increasing Path in a Matrix
  16. 与数论的厮守02:整数的因子分解—Pollard_Rho
  17. html5-微格式-时间的格式
  18. H5——video百花齐放(浏览器自带的播放器)
  19. sqlserver -- 查看当前数据库的数据表(备忘)
  20. Autofac应用总结

热门文章

  1. 百度ueditor上传图片时如何设置默认宽高度
  2. SKU : Stock Keeping Unit
  3. HttpUrlConnection流传输问题(正确传输包含中文的JSON字符串)
  4. 项目部署Vue+Django(luffy)
  5. 上海高校程序设计联赛 D-CSL的字符串 栈模拟
  6. 【XAF问题】如何判断这个对象的进出类型
  7. HIT2019春软件构造-&gt;重写hashCode()方法
  8. 与WCAG相关的一些学习心得
  9. HTTPS、SSL 原理
  10. composer的安装方法 以及 ThinkPHP5安装