详细解析可见https://mp.weixin.qq.com/s/Jhazg56d_7umBdRR-k0_rA
#include <iostream>
using namespace std;
const int N = 10010;
int p[N], num[N];
int find(int x) {
if(p[x] != x) p[x] = find(p[x]);
return p[x];
}
void union1(int a, int b) {
int fa = find(a), fb = find(b);
if(fa != fb) p[fa] = fb;
}
int main() {
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++) {
p[i] = i;
num[i] = 0;
}
for(int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
union1(a, b);
}
int res = 0;
for(int i = 1; i <= n; i++) num[find(i)]++;
for(int i = 1; i <= n; i++) {
if(num[i] > res) res = num[i];
}
cout << res;
return 0;
}



京公网安备 11010502036488号