比赛 至少完成十道练习 评测结果 AAAAAAAAAA
题目名称 最优布线问题 最终得分 100
用户昵称 Regnig Etalsnart 运行时间 0.872 s
代码语言 C++ 内存使用 4.49 MiB
提交时间 2017-05-21 12:51:13
显示代码纯文本
#include<cstdio>
#define syy myson
using namespace std;
const int maxn=1510;
int n,pic[maxn][maxn],ans,i,j;
int prim(int s)
{
	int in[maxn]={0},c[maxn],num=1,now;
	for(i=1;i<=n;i++)c[i]=pic[s][i];
	in[s]=1;
	while(num<n)
	{
		now=0;
		for(i=1;i<=n;i++)
		  if(!in[i])
			if((!now)||c[i]<c[now])
			  now=i;
		if(!now)break;
		num++;
		in[now]=1;
		ans+=c[now];
		for(i=1;i<=n;i++)
		  if(!in[i])
		    if(c[i]>pic[now][i])
		      c[i]=pic[now][i];
	}
	return ans;
}
int Main()
{
	freopen("wire.in","r",stdin);freopen("wire.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&pic[i][j]);
	int anss=prim(1);
	printf("%d",anss);
	return 0;
}
int main(){;}
int syy=Main();