记录编号 469496 评测结果 AAAAAAAAAA
题目名称 通信线路 最终得分 100
用户昵称 GravatarAPWTMECRD 是否通过 通过
代码语言 C++ 运行时间 0.725 s
提交时间 2017-11-03 11:21:55 内存使用 13.18 MiB
显示代码纯文本
#include<cstdio>
#include<algorithm>
#define qq 1125755
using namespace std;
class node
{public:
	int a,b,z;
}s[qq];
int i,j,p[1600];
int n,m,q,ans;

int cmp(node x,node y)
{
	return x.z<y.z;
}

int find(int u)
{
	return p[u]==u ? u :p[u]=find(p[u]);
}

int lsc()
{
	for(int k=1;k<=n;k++)p[k]=k;
	for(int k=1;k<=m;k++)
	{
		int x,y;
		x=find(s[k].a);
		y=find(s[k].b);
		if(x!=y)
		{
			p[x]=y;
			ans+=s[k].z;
		}
	}
	return 0;
}
int main()
{
	freopen ("mcst.in","r",stdin);
	freopen ("mcst.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			scanf("%d",&q);
			if(q!=-1 && i>j)
			{
				s[++m].a=i;
				s[m].b=j;
				s[m].z=q;
			}
		}
	}
	sort(s+1,s+m+1,cmp);
	lsc();
	printf("%d\n",ans);
	return 0;
}