求一个生成树,使得最大边权和最小边权之差最小。由于数据太小,暴力枚举下界,求出相应的上界。最后取min即可。
1 #include2 #include 3 #include 4 using namespace std; 5 int n,m,fa[101],rank[101]; 6 void clear(){ for(int i=1;i<=n;i++) fa[i]=i; memset(rank,0,sizeof(rank));} 7 int findroot(int x) 8 { 9 if(fa[x]==x) return x;10 int rt=findroot(fa[x]);11 fa[x]=rt;12 return rt;13 }14 void Union(int U,int V)15 {16 if(rank[U]