Ice_cream’s world III//最小生成樹kruskal
阿新 • • 發佈:2018-06-24
oss limit java ted for cas bmi case i++
題目:
Ice_cream’s world III
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2566 Accepted Submission(s): 904
#include <iostream> #include<vector> #include <algorithm> using namespace std; const int size = 1e4 + 1; struct edge { int a, b, c; }; struct edge edges[size]; int un[size]; int cmp(edge x, edge y) { return x.c < y.c; } int find(int x) { if(x == un[x]) return x; return find(un[x]); }void Union(int x, int y) { int c1 = find(x); int c2 = find(y); un[c1] = c2; } int main() { int N, M; int S, T, C; while(cin >> N >> M) { for(int i = 0; i < N; i++) un[i] = i; for(int i = 0; i < M; i++) { cin>> edges[i].a >> edges[i].b >> edges[i].c; } sort(edges, edges+M, cmp); int count = N; int ans = 0; for(int i = 0; i < M; i++) { if(find(edges[i].a) == find(edges[i].b)) continue; Union(edges[i].a, edges[i].b); count--; ans+=edges[i].c; } if(count != 1) { printf("impossible\n\n"); continue; } printf("%d\n\n", ans); } return 0; }
Ice_cream’s world III//最小生成樹kruskal