#include<iostream>#include<algorithm>#include<stdio.h>#include<string.h>#include<ctype.h>#include<stdlib.h>#include<math.h>#include<limits.h>#include<vector>#include<queue>#include<stack>UsingNamespace Std;#defineMax(AB) A>b? A: b;#defineMin(AB) A<b? A: b;#define INF0xFFFFFFFConstint N=3000;struct Node{int xY+ K;}maps[N];int F[N], point, Edge;boolCmp(NodeA,NodeB){Return a. l<b. l;}IntFind(int x){If(f[x]!=x) F[x]=Find(f[x]);return F[x];}voidKruskal(){int I, ans; Ans=0;For(I=0; I<edge; I++){int RU=Find(Maps[I].x);int RV=Find(Maps[I].y);If(RU!=rv){F[RU]=rv; Ans+=maps[I].l;}} cout<< ans<< Endl;}IntMain(){int IJAB+ D;While(scanf("%d",&point), point){scanf("%d",&edge);For(j=0; J<=point; J+ +) F[j]=j;For(I=0; I<edge; I++){scanf("%d%d%d",&a,&b,&c[i ].x=a[i. Y=b[i].l< Span class= "Sh-symbol" >=c; sort (Maps , Maps+edge); kruskal (); return 0;< Span class= "Sh-cbracket" >
POJ 1287 Networking