AcWing 1140. 最短网络
原题链接
简单
作者:
Sankano
,
2022-03-09 21:12:28
,
所有人可见
,
阅读 182
#include<bits/stdc++.h>
using namespace std;
const int N=110,INF=0x3f3f3f3f;
int g[N][N];
bool st[N];
int d[N];
int n;
int prim()
{
memset(d,0x3f,sizeof d);
d[1]=0;
int res=0;
for(int i=0;i<n;i++)
{
int t=-1;
for(int j=1;j<=n;j++)
if(!st[j]&&(t==-1||d[j]<d[t])) t=j;
st[t]=true;
res+=d[t];
for(int j=1;j<=n;j++) d[j]=min(d[j],g[t][j]);
}
return res;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>g[i][j];
cout<<prim();
return 0;
}