#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

int n,ans;
int mn[105];
bool vis[105];
int g[105][105];

int main(){
	freopen("1258.in","r",stdin);
	while(scanf("%d",&n)!=EOF){
		memset(mn,0,sizeof(mn));
		memset(vis,false,sizeof(vis));
		memset(g,0,sizeof(g));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				scanf("%d",&g[i][j]);
		memset(mn,0x7f,sizeof(mn));
	    memset(vis, false, sizeof(vis));
	    mn[1]=0;
	    for(int i=1;i<=n;i++){
	        int k=0;
	        for(int j=1;j<=n;j++)
	            if(!vis[j]&&(mn[j]<mn[k]))
	                k=j;
	        vis[k]=true;
	        for(int j=1;j<=n;j++)
	            if(!vis[j]&&(g[k][j]<mn[j]))
	                mn[j]=g[k][j];
	    }
	    int ans=0;
	    for(int i=1;i<=n;i++)
	        ans+=mn[i];
	    printf("%d\n",ans);
	}
	return 0;
}

 

0 0 votes
文章评分
订阅这个评论
提醒

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
最旧
最新 得票最多
Inline Feedbacks
View all comments