最小生成树(模板)

简介: 最小生成树(模板)

题目描述



如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出 orz


输入格式



第一行包含两个整数  N,M,表示该图共有  N 个结点和  M 条无向边。


接下来  M 行每行包含三个整数 Xi,Yi,Zi,表示有一条长度为 Zi 的无向边连接结点 Xi,Yi。


输出格式



如果该图连通,则输出一个整数表示最小生成树的各边的长度之和。如果该图不连通则输出 orz


输入输出样例



输入 #1复制

1. 4 5
2. 1 2 2
3. 1 3 2
4. 1 4 3
5. 2 3 4
6. 3 4 3


输出 #1复制

7


说明/提示



数据规模:


对于  20% 的数据, N≤5, M≤20。

对于  40% 的数据,N\le 50N≤50,M\le 2500M≤2500。

对于 70% 的数据,N\le 500N≤500,M\le 10^4M≤104。


对于  100% 的数据: 1≤N≤5000,  1≤M≤2×10^5   1≤Zi≤10^4 。


样例解释:

1d25fdf82a94527923d01b704ab37b7e.png


所以最小生成树的总边权为 2+2+3=72+2+3=7。

#include<bits/stdc++.h>
using namespace std;
int p[310];
struct edge{
  int a,b,w;
  bool operator<(const edge&a)const{
  return w<a.w;//小到大 
  }
}s[10010];
int find(int x){//根节点 
  if (x!=p[x]) return find(p[x]);
  return p[x]; 
}
int main(){
  int n,m,k;
  cin>>m>>n;
    if(n==0)
            return 0;
    for(int i=0;i<n;i++){//几条路 
      int a,b,c;
      scanf("%d%d%d",&a,&b,&c);//c代表权值 
      s[i]={a,b,c};//结构体写法 
        }
  sort(s,s+n,cmp);//排列方式按照结构体里面的排列来 就是小到大 
  for(int i=1;i<310;i++){
    p[i]=i;//自己是自己的根节点 
  }
  int num=0,maxn=0;
  for(int i=0;i<n;i++){
    int a1=find(s[i].a);
    int b1=find(s[i].b);
    if(a1!=b1){
      p[a1]=b1;
      maxn=maxn+s[i].w;
    }
  }
  cout<<maxn<<endl;//几条路和最大值 
  return 0;//听懂掌声
} 


相关文章
|
开发者 iOS开发
如何使用 Instruments 工具来分析应用的性能?
如何使用 Instruments 工具来分析应用的性能?
484 2
|
12月前
|
机器学习/深度学习 监控 算法
现货量化交易机器人系统开发策略逻辑及源码示例
现货量化交易机器人系统是一种基于计算机算法和数据分析的自动化交易工具。该系统通过制定交易策略、获取和处理数据、生成交易信号、执行交易操作和控制风险等环节,实现高效、精准的交易决策。系统架构可采用分布式或集中式,以满足不同需求。文中还提供了一个简单的双均线策略Python代码示例。
执行npm run dev的时候发生了什么
执行npm run dev的时候发生了什么
1139 60
|
Unix Linux Windows
获取网站绝对路径常用方法
获取网站绝对路径常用方法
506 1
技术指标和振荡器大全(二)(1)
技术指标和振荡器大全(二)(1)
288 0
|
域名解析 监控 网络协议
内网穿透介绍
内网穿透介绍
|
编解码 Android开发 开发者
QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅
QT5.14.2 VS2022环境下FFmpeg与QT的完美邂逅
737 0
|
Linux Shell 网络安全
Linux 命令行小技巧-持续更新
Linux 命令行小技巧-持续更新
194 0
|
定位技术 API 数据库
GIS开发:开源gdal切片
GIS开发中开源gdal切片使用
717 0
Pyinstaller打包配置UPX缩小程序包大小,打包时出现UPX is not available处理方法
Pyinstaller打包配置UPX缩小程序包大小,打包时出现UPX is not available处理方法
681 0
下一篇
开通oss服务