标签:
最小生成树模板
学习的速度太慢了,浪费了不少的时间,必须抓紧了
#include<bits/stdc++.h> using namespace std; #define MAX_V 100 #define INF 0x3f3f3f3f int cost[MAX_V][MAX_V]; int mincost[MAX_V]; bool used[MAX_V]; int V; int prim(){ for(int i=0;i<V;i++) { mincost[i]=INF; used[i]=false; } mincost[0]=0; int res=0; while(true){ int v=-1; for(int u=0;u<V;u++) if(!used[u]&&(v==-1||mincost[u]<mincost[v])) v=u; if(v==-1) break; used[v]=true; res+=mincost[v]; for(int u=0;u<V;u++) mincost[u] = min(mincost[u], cost[v][u]); } return res; } int main() { scanf("%d",&V); for(int i=0;i<V*(V-1)/2;i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); cost[a-1][b-1]=cost[b-1][a-1]=c; } printf("%d",prim()); return 0; } /* 3 1 2 3 0 1 4 0 2 1 4 */
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/a197p/article/details/47321799