Untitled
unknown
plain_text
7 months ago
983 B
2
Indexable
Never
#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; }
Leave a Comment