标签:style blog http color os java io for ar
9 A 2 B 12 I 25 B 3 C 10 H 40 I 8 C 2 D 18 G 55 D 1 E 44 E 2 F 60 G 38 F 0 G 1 H 35 H 1 I 35 3 A 2 B 10 C 40 B 1 C 20 0
216 30
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <climits> 7 #include <vector> 8 #include <queue> 9 #include <cstdlib> 10 #include <string> 11 #include <set> 12 #include <stack> 13 #define LL long long 14 #define pii pair<int,int> 15 #define INF 0x3f3f3f3f 16 using namespace std; 17 const int maxn = 1000; 18 struct arc{ 19 int u,v,w; 20 arc(int x = 0,int y = 0,int z = 0){ 21 u = x; 22 v = y; 23 w = z; 24 } 25 }; 26 int n,m,uf[maxn]; 27 arc e[maxn]; 28 char s[5]; 29 bool cmp(const arc &x,const arc &y){ 30 return x.w < y.w; 31 } 32 int Find(int x){ 33 if(x != uf[x]) uf[x] = Find(uf[x]); 34 return uf[x]; 35 } 36 int Kruskal(){ 37 for(int i = 0; i <= n; i++) uf[i] = i; 38 sort(e,e+m,cmp); 39 int ans = 0; 40 for(int i = 0; i < m; i++){ 41 int x = Find(e[i].u); 42 int y = Find(e[i].v); 43 if(x != y){ 44 ans += e[i].w; 45 uf[x] = y; 46 } 47 } 48 return ans; 49 } 50 int main() { 51 int i,j,k,u,v,w; 52 while(scanf("%d",&n),n){ 53 m = 0; 54 for(i = 1; i < n; i++){ 55 scanf("%s %d",s,&k); 56 u = s[0]-‘A‘+1; 57 for(j = 0; j < k; j++){ 58 scanf("%s %d",s,&w); 59 v = s[0]-‘A‘+1; 60 e[m++] = arc(u,v,w); 61 } 62 } 63 printf("%d\n",Kruskal()); 64 } 65 return 0; 66 }
标签:style blog http color os java io for ar
原文地址:http://www.cnblogs.com/crackpotisback/p/3940913.html