题目链接:http://codeforces.com/contest/1095/problem/F


题意:给你n个点,每个点有个权值,如果在两点之间添一条边,代价为两点权值之和。现在给出m个边可以选择,代价给出,你可以自己建边不选择。问你把这个图连通最小的花费为多少。

解题心得:

  很简单的一个题,刚开始想复杂了弄了好久。直接选一个权值最小的点出来,和每一个点之间连一条边,和m条边放在一起,kruskal跑一下就行了。


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5+; int father[maxn], n, m, pos;
ll Min; ll node[maxn];
struct Edge {
int s, t;
ll va; Edge(int S, int T, ll Va):
s(S), t(T), va(Va){};
}; bool cmp(Edge a, Edge b) {
return a.va < b.va;
} vector <int> ve[maxn];
vector <Edge> edge; void init() {
Min = 1e18;
scanf("%d%d",&n, &m);
for(int i=;i<=n;i++) {
ve[i].push_back(i);
scanf("%lld", &node[i]);
if(node[i] < Min) {
Min = node[i], pos = i;
}
father[i] = i;
}
for(int i=;i<m;i++) {
int a,b;
ll va;
scanf("%d%d%lld", &a, &b, &va);
edge.push_back(Edge(a, b, va));
}
for(int i=;i<=n;i++) {
if(i == pos) continue;
edge.push_back(Edge(pos, i, node[i] + Min));
}
sort(edge.begin(), edge.end(), cmp);
} int find(int x){
if(father[x] == x)
return x;
return father[x] = find(father[x]);
} void merge(int x,int y) {
int fx = find(x);
int fy = find(y);
father[fy] = fx;
} int main() {
//freopen("1.in", "r", stdin);
//freopen("1.out", "w", stdout);
init();
ll ans = ;
for(int i=;i<edge.size();i++) {
int fx = find(edge[i].s);
int fy = find(edge[i].t);
if(fx != fy) {
ans += edge[i].va;
merge(fx, fy);
}
}
printf("%lld", ans);
return ;
}

F. Make It Connected的更多相关文章

  1. F. Make It Connected 解析(思維、MST)

    Codeforce 1095 F. Make It Connected 解析(思維.MST) 今天我們來看看CF1095F 題目連結 題目 給你\(n\)個點,每個點\(u\)還有一個值\(a[u]\ ...

  2. F. Make It Connected(krustra+)

    题目链接:http://codeforces.com/contest/1095/problem/F 题目大意:首先给你n个点,然后给你每个点的权值,再给你m条边,这些边可以选也可以不选,然后问你要使这 ...

  3. F - Number of Connected Components UVALive - 7638 (并查集 + 思维)

    题目链接:https://cn.vjudge.net/contest/275589#problem/F 题目大意:就是给你n个数,如果说两个数之间的gcd!=1,那么就将这两个点连起来,问你最终这些点 ...

  4. Codeforces Round #529 (Div. 3) F.Make It Connected

    传送门 题意: 有 n 个顶点,每个顶点有个花费 a[ i ],连接顶点 u,v 需要花费 a[v]+a[u]的代价. 有 m 个特殊边,每条边有三个参数 u,v,w 代表的意思是连接 u,v 的花费 ...

  5. Codeforces Round #529 (Div. 3) F. Make It Connected (贪心,最小生成树)

    题意:给你\(n\)个点,每个点都有权值,现在要在这\(n\)个点中连一颗最小树,每两个点连一条边的边权为两个点的点权,现在还另外给了你几条边和边权,求最小权重. 题解:对于刚开始所给的\(n\)个点 ...

  6. [No000077]打造自己的Eclipse

    下载官网的Eclipse IDE for Java EE Developers 在根目录下的eclipse.ini文件中添加"-Dfile.encoding=UTF-8", 作用: ...

  7. Cognition math based on Factor Space (2016.05)

    Cognition math based on Factor Space Wang P Z1, Ouyang H2, Zhong Y X3, He H C4 1Intelligence Enginee ...

  8. 5.非关系数据库(Nosql)它mongodb:创建一个集合,导出和导入备份, 数据恢复,进出口

     1 固定集合 固定集合值得是事先创建并且大小固定的集合 2 固定集合的特征:固定集合非常像环形队列.假设空间不足,最早文档就会被删除,为新的文档腾出空间.一般来说.固定集合适用于不论什么想要自己 ...

  9. CodeForces Round #529 Div.3

    http://codeforces.com/contest/1095 A. Repeating Cipher #include <bits/stdc++.h> using namespac ...

随机推荐

  1. 图的存储结构(邻接矩阵与邻接表)及其C++实现

    一.图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合. 注: 在线性表中,元素个数可以为零, ...

  2. centos7 nginx访问目录403解决

    查看  /usr/sbin/sestatusSELinux status是不是enabled  然后 vi /etc/selinux/config修改:SELINUX=disabledreboot

  3. easyui学习笔记11—tab标签页和鼠标动作

    这篇我们看看标签页是怎么实现的,默认情况下要靠点击切换标签,也可以用鼠标切换标签选项,就是鼠标放在标签上切换. 首先看看引用的资源文件 1.资源文件 <head> <meta cha ...

  4. Kali-linux准备内核头文件

    内核头文件是Linux内核的源代码.有时候,用户需要编译内核头文件代码,为以后使用内核头文件做准备,本节将介绍编译内核头文件的详细步骤. 准备内核头文件的具体操作步骤如下所示. (1)更新软件包列表. ...

  5. Selenium应用代码(读取mysql表数据登录)

    1. 封装链接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; ...

  6. 数据元&数据字典&元数据

    1. 数据元 data element(数据元素),单个数据单元,是数据的基本单位.参阅data field(数据字段). 2. 元数据 首先,我们举个例子来看看什么叫做“元”,在后现代主义文学中有一 ...

  7. EF Core中Key属性相同的实体只能被跟踪(track)一次

    在EF Core的DbContext中,我们可以通过DbContext或DbSet的Attach方法,来让DbContext上下文来跟踪(track)一个实体对象,假设现在我们有User实体对象,其U ...

  8. FreeRTOS 和uCOS II的简单比较

    转载:http://www.viewtool.com/bbs/forum.php?mod=viewthread&tid=114 这是两种RTOS, 现在粗略比较一下. freeRTOS比uCO ...

  9. Docker 三种UI管理平台

    docker集中化web管理平台 一.shipyard 1.启动docker,下载镜像 # systemctl restart docker # docker pull alpine # docker ...

  10. Hibernate连接各种数据库的配置

    转自CSDN shl7765856的专栏:http://blog.csdn.net/shl7765856/article/details/7411987 目录: 1.MySql连接配置 2.Sql S ...