就是模板- -
熟练起来
#include<iostream>
using namespace std;
const int inf = 0x3f3f3f3f;
int p[100][100];
int vis[100];
int lowc[100];
void input(int n){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
p[i][j]=inf;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>p[i][j];
}
}
}
int prim(int n){
int i,j,rp;
int minc,res=0;
memset(vis,0,sizeof(vis));
vis[0]=1;
for(i=1;i<n;i++)
lowc[i]=p[0][i];
for(i=1;i<n;i++){
minc=inf;
rp=-1;
for(j=0;j<n;j++){
if(0==vis[j]&&minc>lowc[j]){
minc=lowc[j];
rp=j;
}
}
if(inf==minc)return -1;
res+=minc;
vis[rp]=1;
for(j=0;j<n;j++){
if(0==vis[j]&&lowc[j]>p[rp][j])
lowc[j]=p[rp][j];
}
}
return res;
}
int main(){
int n;
while(cin>>n){
input(n);
cout<<prim(n)<<endl;
}
}