洛谷P3399(最小生成树模板)

题目链接: https://www.luogu.org/problemnew/show/P3366

题目描述

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

输入输出格式

输入格式:

第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N<=5000,M<=200000)

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

输出格式:

输出包含一个数,即最小生成树的各边的长度之和;如果该图不连通则输出orz

思路:套板子,需要注意的是若图不连通则需判断加进来的点数是否等于n-1,见代码
#include
#include
using namespace std; 
int par[5010];
int rank[5010];
int n,m;
int cnt=0;
struct edge
{
	int u,v,cost;
}  ;
edge es[200010];
bool cmp(const edge& e1,const edge &e2)
{
	return e1.cost

你可能感兴趣的:(模板,洛谷,最小生成树)