标签:des blog io ar os sp for strong div
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 41230 | Accepted: 16810 | 
Description
Input
Output
Sample Input
4 0 4 9 21 4 0 8 17 9 8 0 16 21 17 16 0
Sample Output
28
#include <cstdio>
#include<cstring>
#include <queue>
#include <assert.h>
using namespace std;
int blen;
int d[102][102];
int n;
bool vis[102];
typedef pair<int,int> P;
int prim(){
    memset(vis,0,sizeof(vis));
    priority_queue<P,vector<P>,greater<P> >que;
    int num=1;
    int ans=0;
    for(int i=1;i<n;i++){
        que.push(P(d[0][i],i));
    }
    vis[0]=true;
    while(num<n&&!que.empty()){
        int t=que.top().second;
        int td=que.top().first;
        que.pop();
        if(vis[t])continue;
        vis[t]=true;
        ans+=td;
        num++;
        for(int i=0;i<n;i++){
            if(!vis[i]){
                que.push(P(d[t][i],i));
            }
        }
    }
    return ans;
}
int main(){
    while(scanf("%d",&n)==1){
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                scanf("%d",d[i]+j);
            }
        }
        int ans=prim();
        printf("%d\n",ans);
    }
    return 0;
}
poj 1258 Agri-Net 最小生成树 prim算法+heap不完全优化
标签:des blog io ar os sp for strong div
原文地址:http://www.cnblogs.com/xuesu/p/4093930.html