P1546 最短網絡 Agri-Net

最小生成樹模板。node

注意輸入的不一樣,還有數組開大。ios

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;

int n,x,t,ans;
int fa[102*102];

struct node{
	int u,v,w;
}e[102*102];

bool cmp(node x,node y)
{
	return x.w <y.w ;
} 

int find(int x)
{
	if(fa[x]==x) return x;
	else return fa[x]=find(fa[x]);
}

int main()
{
	//freopen("2.in","r",stdin);
	//freopen("2.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		fa[i]=i;
	for(int i=1;i<=n;++i)
		for(int j=1;j<=n;++j)
		{
			scanf("%d",&x);
			if(i!=j)
			{
				t++;
				e[t].u =i;
				e[t].v =j;
				e[t].w =x;
			}
		}
	sort(e+1,e+t+1,cmp);
	for(int i=1;i<=t;++i)
	{
		int dx=find(e[i].u );
		int dy=find(e[i].v );
		if(dx==dy) continue;
		ans+=e[i].w ;
		fa[dx]=dy;
	}	
	printf("%d",ans);
	return 0;
}

若是你不開心,那我就把右邊這個帥傻子分享給你吧,   數組

你看,他這麼好看,那麼深情的望着你,你還傷心嗎?   spa

真的!這照片盯上他五秒鐘就想笑了。   blog

一切都會過去的。  string

相關文章
相關標籤/搜索