栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【c++图论】洛谷 P3366最小生成树

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【c++图论】洛谷 P3366最小生成树

题目描述

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

输入格式

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

接下来 MM 行每行包含三个整数 X_i,Y_i,Z_iXi​,Yi​,Zi​,表示有一条长度为 Z_iZi​ 的无向边连接结点 X_i,Y_iXi​,Yi​。

输出格式

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

输入输出样例

输入 #1复制

4 5
1 2 2
1 3 2
1 4 3
2 3 4
3 4 3

输出 #1复制

7
说明/提示

数据规模:

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

对于 40%40% 的数据,Nle 50N≤50,Mle 2500M≤2500。

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

对于 100%100% 的数据:1le Nle 50001≤N≤5000,1le Mle 2times 10^51≤M≤2×105,1le Z_i le 10^41≤Zi​≤104。

样例解释:

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

 具体做法:(如有问题可以私信,还请各位多多包含)

#include
#include
#include
#include
#include
using namespace std;
struct node{
	int u,v,w,next;

	bool operator < (const node &a)const{
		return w>n>>m;
	for(int i=1;i<=n;i++)
		f[i]=i;
	for(int i=1;i<=m;i++){
		cin>>e[i].u>>e[i].v>>e[i].w;

	}
	int x=kruskal();
	if(x==-1) 
		cout<<"orz";
	else 
		cout< 

 考虑到这是一道模板题,所以梳理思路很重要

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029203.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号