2610 DA AN

Papyrus在审判你  •  11个月前


#include<bits/stdc++.h>
using namespace std;
int visited[150];
int minconst[150];
int noip[150][150]={0};
int ans=0,n;
int prim(){
int cmp,v;
    for(int i=0;i<n;i++){
        visited[i]=0;
        minconst[i]=noip[0][i];
    }
    visited[0]=1;
    for(int i=1;i<n;i++){
        cmp=99999;
        for(int j=0;j<n;j++){
            if(!visited[j]&&minconst[j]<cmp){
                cmp=minconst[j];
                v=j;
            }
        }
        visited[v]=1;
        ans+=cmp;
        for(int i=0;i<n;i++){
            if(noip[v][i]<minconst[i]&&!visited[i]){
                minconst[i]=noip[v][i];
            }
        }
    }
    return ans;
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cin>>noip[i][j];
        }
    }
    cout<<prim();
    return 0;
}

评论:

请先登录,才能进行评论