题目描述 https://www.luogu.org/problemnew/show/P1546
最小生成树的模板题,题目中说的一行接一行读入对本题没有半毛钱影响。。。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[105][105],d[105],ans;
bool fl[105];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
memset(d,0x7f/3,sizeof(d));
d[1]=0;
for(int i=1;i<=n;i++)
{
int p=0;
for(int j=1;j<=n;j++)
if(!fl[j]&&d[j]<d[p]) p=j;
fl[p]=1;//用了
for(int j=1;j<=n;j++)
if(!fl[j]&&a[p][j]<d[j])
d[j]=a[p][j];
}
for(int i=1;i<=n;i++) ans+=d[i];
printf("%d",ans);
return 0;
}