1146. 新的开始

发展采矿业当然首先得有矿井,小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了 n 口矿井,但他似乎忘记了考虑矿井供电问题。

为了保证电力的供应,小 FF 想到了两种办法:

在矿井 i 上建立一个发电站,费用为 vi(发电站的输出功率可以供给任意多个矿井)。
将这口矿井 i 与另外的已经有电力供应的矿井 j 之间建立电网,费用为 pi,j。
小 FF 希望你帮他想出一个保证所有矿井电力供应的最小花费方案。

输入格式
第一行包含一个整数 n,表示矿井总数。

接下来 n 行,每行一个整数,第 i 个数 vi 表示在第 i 口矿井上建立发电站的费用。

接下来为一个 n×n 的矩阵 P,其中 pi,j 表示在第 i 口矿井和第 j 口矿井之间建立电网的费用。

数据保证 pi,j=pj,i,且 pi,i=0。

输出格式
输出一个整数,表示让所有矿井获得充足电能的最小花费。

数据范围
1 ≤ n ≤ 300 1≤n≤300 1≤n≤300,
0≤vi,pi,j≤105
输入样例:
4
5
4
4
3
0 2 2 2
2 0 3 3
2 3 0 4
2 3 4 0
输出样例:
9

超级源点!
和 昂贵的聘礼 的化简问题的思路一样,把图搞完后就是个最小生成树的板子题。

#include <bits/stdc++.h>using namespace std;
const int maxn=1e5+5;
int n;
int fa[maxn];struct node
{int u,v,w;inline bool operator<(const node & x)const{return w<x.w;}
}e[maxn*2];void init()
{for(int i=0;i<=n;i++){fa[i]=i;}return ;
}int find(int x)
{if(fa[x]!=x){fa[x]=find(fa[x]);}return fa[x];
}int main()
{scanf("%d",&n);init();int idx=1;for(int i=1;i<=n;i++){int x;scanf("%d",&x);e[idx].u=0;e[idx].v=i;e[idx].w=x;idx++;}int a[350][350];for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&a[i][j]);}}for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){e[idx].u=i;e[idx].v=j;e[idx].w=a[i][j];idx++;}}sort(e+1,e+1+idx);int res=0;int cnt=0;for(int i=1;i<=idx;i++){int a=e[i].u;int b=e[i].v;int c=e[i].w;if(find(a)!=find(b)){fa[find(a)]=find(b);res+=c;cnt++;}}//  cout<<cnt<<endl;printf("%d\n",res);return 0;
}

1146. 新的开始 题解相关推荐

  1. ACM—TC 联合招新赛1题解

    本场题目难度较上场有所增加,思维量较大,但是涉及的知识点都已经提及(都可写. A.签到题 难度指数:3 这题我本来想放在上一场当防AK题,但是觉得太简单了又放这场当篇难题了. 解题思路:首先简化问题, ...

  2. 西邮Linux兴趣小组2022纳新面试题题解

    本题目只作为Xiyou Linux兴趣小组2022纳新面试的有限参考. 为节省版面,本试题的程序源码省去了#include指令. 本试题中的程序源码仅用于考察C语言基础,不应当作为C语言「代码风格」的 ...

  3. 西邮Linux兴趣小组2021纳新面试题题解

    注: 本题目仅作西邮Linux兴趣小组2021纳新面试题的有限参考. 为节省版面本试题的程序源码中省略了#include指令. 本试题中的程序源码仅用于考察C语言基础,不应当作为C语言代码风格的范例. ...

  4. swustACM2018国庆招新正式赛题解

    这次题其实不难,比较偏思维. 按照出题人的预期,题目难度分布是这样的: 难度 培训来了的都能A 签到题 中等题 防AK 题号 A D E I B J F C H 结果,看看榜- A.我还真是个天使呢 ...

  5. 西邮Linux小组22-20纳新面试题目及题解

    西邮Linux兴趣小组2022纳新面试题题解 感谢 Zhilu 重新录入题目原件.好人一生平安. 本题目只作为Xiyou Linux兴趣小组2022纳新面试的有限参考. 为节省版面,本试题的程序源码省 ...

  6. 算法——AcWing算法提高课中代码和题解

    文章目录 第一章 动态规划 (完成情况:64/68) 数字三角形模型 最长上升子序列模型 背包模型 状态机模型 状态压缩DP 区间DP 树形DP 数位DP 单调队列优化DP 斜率优化DP 第二章 搜索 ...

  7. 遗传编程(GA,genetic programming)算法初探,以及用遗传编程自动生成符合题解的正则表达式的实践...

    1. 遗传编程简介 0x1:什么是遗传编程算法,和传统机器学习算法有什么区别 传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法.对于这些机器学习算法来说,唯一的灵活性体现在 ...

  8. 读赵凯华之《新概念物理教程.力学》

    赵凯华, 罗蔚茵. 新概念物理教程.力学. ISBN: 978-7-04-015201-2 赵凯华, 罗蔚茵, 陈熙谋. 新概念物理题解.上册. ISBN: 978-7-04-026274-2 如果将 ...

  9. 读赵凯华之《新概念物理教程.光学》

    赵凯华. 新概念物理教程.光学. ISBN: 978-7-04-015562-4 赵凯华, 罗蔚茵, 王笑君. 新概念物理题解.下册. ISBN: 978-7-04-026275-9 光学是物理中比较 ...

最新文章

  1. java map set_java中Map、Set、List的简单使用教程(快速入门)
  2. 如何定义和实现一个类的成员函数为回调函数
  3. matplotlib 中文_详解Matplotlib中文字符显示问题
  4. 关于Net开发中一些SQLServer性能优化的建议
  5. java 按位置格式化字符串_Java字符串格式化,{}占位符根据名字替换实例
  6. 新iPhone又被各个品牌玩坏了,这里的人个个都是人才,说话又好听…
  7. 抢先一步 华为将于7月26日发布首款5G智能手机
  8. 使用表的id+随机数做不重复的订单号
  9. 使用 Python MQTT 客户端 Paho-MQTT 的初学者指南
  10. 来LAMP兄弟连的日子
  11. 高速公路收费站通行能力分析与设计
  12. PAT 甲级 1020. Tree Traversals
  13. Local time zone must be set-see zic manual page
  14. 斜挎包长度到哪里合适_一般斜挎包长多少厘米_身高170斜挎包带长
  15. laragon用php连接数据库,Laragon - PHP 集成环境 - 技术资源库 - by 安拓网络技术资源库 - by 安拓网络...
  16. mapreduce运行的bug收录
  17. hackbar小插件
  18. 中等专业学校计算机教师,中等专业学校计算机班主任老师年度工作总结
  19. USART向串口助手发送数据(DMA方式)
  20. 马加爵 谭卓 牛顿等人在天堂的对话

热门文章

  1. usb debug---usbmon 的使用
  2. UE4 AR 开发问题记录!
  3. 分享一个免费网页模板下载
  4. 用Adobe软件打开PDF文件时,任务栏图标显示异常的问题。
  5. SNPE量化分析(1)
  6. Linux FTP命令全集(ftp指令)
  7. 汇千网-华米亮出独立GPU、自研操作系统,新引擎30秒监测血压
  8. 【BUUCTF】MISC 另外一个世界
  9. oracle存储过程写法 并行_oracle存储过程写法
  10. 基于Java的并发文件下载助手