#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int dis[101][101],vis[101],n,i,j,min,farm,p,s;
while(cin>>n&&n)
{
memset(vis,0,sizeof(vis));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>dis[i][j];
vis[0]=1;
farm=1;
s=0;
while(farm!=n)
{
min=1000000;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(vis[i]==1&&vis[j]==0)
if(dis[i][j]<min)
{
min=dis[i][j];
p=j;
}
s+=min;
vis[p]=1;
farm++;
}
cout<<s<<endl;
}
return 0;
}
poj1258 最小生成树(但是可以很简洁的写哦)
最新推荐文章于 2019-09-03 20:04:00 发布