F. Make It Connected 解析(思維、MST)
Codeforce 1095 F. Make It Connected 解析(思維、MST)
今天我們來看看CF1095F
題目連結
題目
給你\(n\)個點,每個點\(u\)還有一個值\(a[u]\),還有給你\(m\)條可能的邊。
任兩點\((u,v)\)都可能可以用\(a[u]+a[v]\)這個權值來連接。
一開始圖上沒有邊,求最小的權值使得圖連通。
前言
思考方向還是不夠正確阿...
想法
首先知道我們想要構造MST,並且注意到:如果不考慮多出來的\(m\)條邊,那麼從權值最小的點連到所有其他點就是一種最好的構造。
那麼我們只要把這\(n-1\)條邊納入考慮一起造MST就好。
程式碼:
const int _n=2e5+10;
int parent[_n], rank[_n];
inline void dsinit(int n) {for (int i = 0; i < n; i++)parent[i] = i;memset(rank, 0, sizeof rank);}
inline int dsfind(int e) {return parent[e] == e ? e : parent[e] = dsfind(parent[e]);}
inline void dsunion(int s1, int s2) {if (rank[s1] < rank[s2])swap(s1, s2);parent[s2] = s1;if (rank[s1] == rank[s2]) rank[s1]++;}
//以上是dsu模板
struct E{
int f,t;ll w;
bool operator<(const E& rhs)const{return w<rhs.w;}
};
int t,n,m,s1,s2,id=0,x,y;
ll a[_n],sum=0,w;
vector<E> e;
main(void) {ios_base::sync_with_stdio(0);cin.tie(0);
cin>>n>>m;rep(i,0,n)cin>>a[i]; rep(i,0,m){
cin>>x>>y>>w;x--,y--;e.pb({x,y,w});
}id=0;rep(i,1,n)if(a[i]<a[id])id=i;
rep(i,m,m+n)if(i-m!=id)e.pb({id,i-m,a[id]+a[i-m]});
sort(all(e)); dsinit(n);
sum=0;rep(i,0,m+n-1){
s1=dsfind(e[i].f),s2=dsfind(e[i].t);
if(s1!=s2)dsunion(s1,s2),sum+=e[i].w;
}cout<<sum<<'\n';
return 0;
}
標頭、模板請點Submission看
Submission
F. Make It Connected 解析(思維、MST)的更多相关文章
- F. Moving Points 解析(思維、離散化、BIT、前綴和)
Codeforce 1311 F. Moving Points 解析(思維.離散化.BIT.前綴和) 今天我們來看看CF1311F 題目連結 題目 略,請直接看原題. 前言 最近寫1900的題目更容易 ...
- A. Peter and Snow Blower 解析(思維、幾何)
Codeforce 613 A. Peter and Snow Blower 解析(思維.幾何) 今天我們來看看CF613A 題目連結 題目 給你一個點\(P\)和\(n\)個點形成的多邊形(照順或逆 ...
- B. Game of the Rows 解析(思維)
Codeforce 839 B. Game of the Rows 解析(思維) 今天我們來看看CF839B 題目連結 題目 有如下圖片所示的飛機座位\(n\)排,和\(k\)隊士兵,每隊數量不一定. ...
- A. Arena of Greed 解析(思維)
Codeforce 1425 A. Arena of Greed 解析(思維) 今天我們來看看CF1425A 題目連結 題目 略,請直接看原題. 前言 明明是難度1400的題目,但總感覺不是很好寫阿, ...
- E. Almost Regular Bracket Sequence 解析(思維)
Codeforce 1095 E. Almost Regular Bracket Sequence 解析(思維) 今天我們來看看CF1095E 題目連結 題目 給你一個括號序列,求有幾個字元改括號方向 ...
- C2. Power Transmission (Hard Edition) 解析(思維、幾何)
Codeforce 1163 C2. Power Transmission (Hard Edition) 解析(思維.幾何) 今天我們來看看CF1163C2 題目連結 題目 給一堆點,每兩個點會造成一 ...
- B. Two Arrays 解析(思維)
Codeforce 1417 B. Two Arrays 解析(思維) 今天我們來看看CF1417B 題目連結 題目 略,請直接看原題. 前言 a @copyright petjelinux 版權所有 ...
- C. k-Amazing Numbers 解析(思維)
Codeforce 1417 C. k-Amazing Numbers 解析(思維) 今天我們來看看CF1417C 題目連結 題目 略,請直接看原題. 前言 我實作好慢... @copyright p ...
- D. Road to Post Office 解析(思維)
Codeforce 702 D. Road to Post Office 解析(思維) 今天我們來看看CF702D 題目連結 題目 略,請直接看原題. 前言 原本想說會不會也是要列式子解或者二分搜,沒 ...
随机推荐
- spring aop原理和实现
一.aop是什么 1.AOP面向方面编程基于IoC,是对OOP的有益补充: 2.AOP利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了 多个类的公共行为封装到一个可 ...
- 刷题[CISCN2019 华东南赛区]Web4
解题思路 打开有一个链接,那先点击一下 发现url处,很像命令执行,试一试.发现无论是什么都是no response,又是各种尝试 发现直接传?url=/etc/passwwd可以爆出回显,难道不是命 ...
- 使用kind搭建kubernetes
使用kind搭建kubernetes 目录 使用kind搭建kubernetes kind架构 创建集群 将镜像加载到kind的node中 配置kind集群 配置多节点 多控制面 指定Kubernet ...
- 将SublimeText3打造成简易Java IDE
简介与优点 使用该教程,你能使你的Sublime Text3可以作为一个精简版的JAVA IDE工具 既可以独立在cmd控制台运行也可以在Sublime自带的控制台运行 运行后不会有乱码 报错后可以在 ...
- .NETCore在析构函数(Finalize)在Linux下引起程序异常退出现象
目 录 1. 现象概述... 1 2. 操作数据库的代码... 2 3. 引起的异常... 2 4. 异常信息分析... 3 5. 分析结 ...
- Python练习题 009:水仙花数
[Python练习题 009] 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数& ...
- VID和PID
今天很在一份datasheet上突然看到 VID 和 PID 很奇怪!!还不是很懂!!! 参考:https://blog.csdn.net/gaojinshan/article/details/787 ...
- CSS中居中的完全指南(中英对照翻译)
翻译自:https://css-tricks.com/centering-css-complete-guide/ Centering things in CSS is the poster child ...
- HarmonyOS 润和 HiSpark开发套件 免费领!
让人期盼已久的HarmonyOS 2.0终于在9月10日正式上线啦! 这是一件让众多开发者关注的大事件! 相信不少开发者都已经迫不及待的想上手实操了, 为了满足大家的好奇心, 也希望能有更多开发者了解 ...
- Windows10系统下wsappx占用CPU资源过高?wsappx是什么?如何关闭wsappx进程?
在Windows10系统开机的时候,wsappx进程占用的CPU资源非常高,导致电脑运行速度缓慢,那么我们如何关闭wsappx进程,让电脑加快运行速度呢?下面就一起来看一下操作的方法吧. [现象] 1 ...