【洛谷 p3366】模板-最小生成树(图论)
2024-10-20 06:26:35
题目:给出一个无向图,求出最小生成树,如果该图不连通,则输出orz。
解法:Kruskal求MST。
1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
5 #include<algorithm>
6 using namespace std;
7
8 const int N=5010,M=200010;
9 int fa[N];
10 struct edge{int x,y,d;}a[M];
11
12 int ffind(int x)
13 {
14 if (fa[x]!=x) fa[x]=ffind(fa[x]);
15 return fa[x];
16 }
17 bool cmp(edge x,edge y) {return x.d<y.d;}
18 int main()
19 {
20 int n,m;
21 scanf("%d%d",&n,&m);
22 int x,y,d;
23 for (int i=1;i<=m;i++)
24 scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].d);
25 sort(a+1,a+1+m,cmp);
26 for (int i=1;i<=n;i++) fa[i]=i;
27 int sum=0,cnt=0;
28 for (int i=1;i<=m;i++)
29 {
30 int x=a[i].x,y=a[i].y;
31 int xx=ffind(x),yy=ffind(y);
32 if (xx!=yy)
33 {
34 fa[xx]=yy;
35 sum+=a[i].d;
36 cnt++;
37 if (cnt==n-1) break;
38 }
39 }
40 if (cnt==n-1) printf("%d\n",sum);
41 else printf("orz\n");
42 return 0;
43 }
最新文章
- S5PV210_串行通信
- oracle db link的查看创建与删除
- ae 打开地图文档
- 指定页面配置https(apache/tomcat)
- SQL Server DBA日常查询视图_数据库对象视图
- Linux 服务器的网络配置 - 2. 查看 Linux 服务器的进程
- DIV半透明,内层不受影响的代码
- Java Map集合按照key和value排序之法
- HTML表格布局
- Linux-系统编程-知识点概述
- Python 关于在ubuntu部署Django项目
- Alpha冲刺随笔汇总
- oracle中的对象创建及删除语句【原创】
- git在不同平台windows、linux、mac 上换行符的问题
- [py][mx]django-解决注册用户已存在,激活链接判断
- VS2015编译CURL7.54.0源码
- MySQL高级函数case的使用技巧----与sum结合实现分段统计
- jquery省市选择案例
- storyboard,xib
- springboot2.1.1 中集成websocket 单元测试异常
热门文章
- 讲讲Java8的Optional类
- 真的,kafka 入门看这一篇准没错!
- Nginx 实现动态负载均衡(Nginx-1.10.1 + Consul v0.6.4)
- xtrabackup迁移mysql5.7.32
- docker 数据卷的挂载和使用
- SWPU2019
- Kubernetes 升级过程记录:从 1.17.0 升级至最新版 1.20.2
- python中IF语句容易犯的错误CASE
- 都知道Base64,Base32你能实现吗?
- maven打包三种方式