Untitled
unknown
plain_text
2 years ago
983 B
8
Indexable
#include<iostream>
using namespace std;
int mang[101][101],key[101],parent[101], visited[101];
int n,ans;
int minKey(){
int min=1000000;
int index=0;
for(int i=0; i<n; i++){
if(key[i]<min && visited[i]==0){
min=key[i];
index=i;
}
}
return index;
}
void prim(int start){
for(int i=0; i<n; i++){
key[i]=1000000;
parent[i]=-1;
visited[i]=0;
}
key[start]=0;
for(int i=0; i<n; i++){
int u = minKey();
visited[u]=1;
for(int j=0; j<n; j++){
if(mang[u][j]!=0 && visited[j]==0){
if(mang[u][j]<key[j]){
key[j]=mang[u][j];
parent[j]=u;
}
}
}
}
}
int main(){
freopen("Text.txt", "r", stdin);
int t;
cin >> t;
for(int tc=1; tc<=t; tc++){
cin >> n;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
cin >> mang[i][j];
}
}
prim(0);
ans=0;
for(int i=0; i<n; i++){
ans+=key[i];
}
cout << "Case #" << tc << endl;
cout << ans << endl;
}
return 0;
}Editor is loading...
Leave a Comment