简单的。。。一遍。。。
#include#define N 30000+5int n,m,ans;//n个人,m个团体int father[N];int sum[N];int find_f(int x){ if(father[x]==x) return x; else { father[x]=find_f(father[x]); } return father[x];}void u(int x,int y){ int fx,fy; fx=find_f(x); fy=find_f(y); if(fx==fy) return ; if(sum[fx]>=sum[fy]){ father[fy]=fx; sum[fx]+=sum[fy]; } else{ father[fx]=fy; sum[fy]+=sum[fx]; } return ;}int main(){ int i,j,k,t; int groupnum,first,next; while(scanf("%d%d",&n,&m),n+m){ for(i=0;i
AC