比赛 |
至少完成十道练习 |
评测结果 |
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();