ACwing(基础)--- Kruskal

Kruskal算法(适用于稀疏图)

1、将所有边按权重从小到大排序 O(mlogn)
2、枚举每条边a,b,权重c O(m)
if a,b不连通
将这条边加入集合中

判断连通

  • 使用并查集来判断两个连通块是否连通
#include
#include

using namespace std;

const int M = 2e5+10;
int n,m;
int fa[M];//并查集的父节点数组
struct edge { //存储边
	int a,b,w;
} edges[M];

bool cmp(edge a, edge b) {
	return a.w>n>>m;
	for(int i=0; i>a>>b>>w;
		edges[i]= {a,b,w};
	}
	kruskal();
	return 0;
}

你可能感兴趣的:(ACwing(基础)--- Kruskal)