就一个最小生成树。
本蒟蒻还交了三次,最后才发现是数组开小了。。
不能再刷水题了。。。
Code:
#include <iostream>
#include <cstdio>
using namespace std;
const long maxn=999999999;
long pre[301];
long g[301][301];
int v[301];
int main(){
long n;
cin >>n;
pre[0]=0;
for (int i=1;i<=n;i++){
cin >>g[0][i];
pre[i]=g[0][i];
v[i]=1;
}
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++)
cin >>g[i][j];
}
long min,ans=0;
pre[301]=maxn;
for (int i=1;i<=n;i++){
min=301;
for (int j=1;j<=n;j++){
if (v[j]){
min=(pre[j]<pre[min])?j:min;
}
}
ans+=pre[min];
//cout <<min <<" " <<pre[min] <<endl;
v[min]=0;
for (int j=1;j<=n;j++){
pre[j]=(g[min][j]<pre[j])?g[min][j]:pre[j];
}
}
cout <<ans;
//cin >>ans;
return 0;
}