终于找到了模板题目,但是题目写得十分精彩,完全符合oi的精髓,废话连篇,内容包裹十分完美。
上代码(不懂的请去看最小生成树汇总)
#include<cstdio>
#include<algorithm>
using namespace std;
const int mx=500;
int n,m;
int la[mx],f[mx],len=0;
struct nod{int x,y,c,gg;}b[mx],e[mx*mx];
bool cmp(nod x,nod y) { return x.c<y.c; }
int ch(int x)
{
if(x==f[x]) return x; return f[x]=ch(f[x]);
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++) { f[i]=i; la[i]=0; }
int x,y,c;
for(int i=1;i<=m;i++)
{
scanf("%d %d %d",&x,&y,&c);
e[i].x=x;e[i].y=y;e[i].c=c;
}
sort(e+1,e+1+m,cmp);
int su=0,ans=0;
for(int i=1;i<=m;i++)
{
int xx=ch(e[i].x);
int yy=ch(e[i].y);
if(xx!=yy)
{
f[xx]=yy;
su++;
if(su==n-1) //构成整棵树,游戏结束
{
printf("%d %d",n-1,e[i].c); return 0;
}
}
}
}