省选提??
/************************************************************** Problem: 1083 User: lxy8584099 Language: C++ Result: Accepted Time:76 ms Memory:2260 kb ****************************************************************/ /* 最小生成树。。。 */ #include<cstdio> #include<algorithm> using namespace std; const int N=350; struct pp {int u,v,d;} e[N*N]; int fa[N],n,m; bool cmp(pp a,pp b) {return a.d<b.d;} int get(int x) {return x==fa[x]?x:get(fa[x]);} int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=m;i++) scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].d); sort(e+1,e+m+1,cmp); for(int i=1,k=0;i<=m;i++) { int u=get(e[i].u),v=get(e[i].v),d=e[i].d; if(u==v) continue; fa[u]=v;k++; if(k==n-1) {printf("%d %d\n",k,d);break;} } return 0; }