标签:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 50 + 10;const int inf = 0x3f3f3f3f;int g[maxn][maxn],vis[maxn],lowc[maxn];int prim(int n){int ans = 0;memset(vis,0,sizeof(vis));for(int i = 2 ; i <= n ; ++i) lowc[i] = g[1][i];vis[1] = 1;for(int i = 2 ; i <= n ;++i){int minc = inf;int p = -1;for(int j = 1 ;j <= n ;++j){if(!vis[j] && minc > lowc[j]){minc = lowc[j];p = j;}}if(minc == inf) return -1;ans += minc;vis[p] = 1;for(int j = 1 ; j <= n ; ++j){if(!vis[j] && lowc[j] > g[p][j])lowc[j] = g[p][j];}}return ans;}int main(){//freopen("in.txt","r",stdin);int n,m;while(~scanf("%d",&n) && n){scanf("%d",&m);int a,b,c;memset(g,0x3f,sizeof(g));for(int i = 1; i <= m ; ++i ){scanf("%d%d%d",&a,&b,&c);g[a][b] = min(c,g[a][b]);g[b][a] = g[a][b];}printf("%d\n",prim(n));}return 0;}
[2016-04-14][POJ][1287][Networking]
标签:
原文地址:http://www.cnblogs.com/qhy285571052/p/d8ca87e1ec8128be30c4bc0a9c35d3d2.html