ACM_模板_最小生成树

最小生成树,其本质还是并查集,经典运用就是Kruskal算法,对边权进行排序后,由小到大进行合并处理,直到形成一颗树为止。

#include//最小生成树
#include
using namespace std;
int root[101];
int N,Q,i,j,a,b,d,t,ans;
struct road
{
	int s;
	int e;
	int d;
}edge[5051];
bool cmp(road a,road b)
{
	return a.d=i)continue;
				edge[t].s = j;
				edge[t].e = i;
				edge[t].d = d;
				t++;
			}
		scanf("%d",&Q);
		while(Q--)
		{
			scanf("%d%d",&a,&b);
			merge(a,b);
		}
		sort(edge,edge+t,cmp);
		ans = 0;
		for(i=0;i


你可能感兴趣的:(ACM_算法_模板)