讨论 / C++ AC
DavidTesla 2017-05-12 22:47:32
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#include<algorithm>

using namespace std;

int Father[1005],group[1005],ans=-1;

void init();

int GetFather(int a);

void merge(int a,int b);

int main()

{

init();

int n,m;

cin>>n>>m;

for(int q=0;q<m;q++){

int t1,t2;

scanf("%d%d",&t1,&t2);

merge(t1,t2);

}

cout<<ans;

return 0;

}

void init()

{

for(int q=0;q<1005;q++){

Father[q]=q;

group[q]=1;

}

}

int GetFather(int a)

{

if(Father[a]==a)

return a;

else{

Father[a]=GetFather(Father[a]);

return Father[a];

}

}

void merge(int a,int b)

{

int t1=GetFather(a);

int t2=GetFather(b);

if(t1!=t2)

Father[t2]=t1;

if(t1==t2)

return;

group[t1]+=group[t2];

ans=max(ans,group[t1]);

}

查看更多回复
提交回复