#Z2506. 最大连通块

最大连通块

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 20005;
int n, m, cnt, ans;
bool vis[N];
vector<int> G[N];
void dfs(int u) { // 请完善 dfs 函数
  
}
int main() {
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        G[u].push_back(v);
        G[v].push_back(u);
    }
    for (int i = 1; i <= n; i++) {
        if (!vis[i]) {
            cnt = 0;
            dfs(i);
            ans = max(ans, cnt);
        }
    }
    cout << ans << endl;
    return 0;
}

输入一个无向图,求图中最大的连通块里边有多少个点。

输入格式

输入第一行两个整数 n,m(1n,m20000)n,m(1 \le n, m \le 20000),表示图的点的数量和边的数量,两数之间以一个空格分隔。

接下来 m 行,每行两个整数 a,b(1a,bn)a, b (1 \le a, b \le n),表示一条无向边,两数之间以一个空格分隔。

输出格式

输出一行一个整数,表示图中最大的连通块中点的个数。

输出时每行末尾的多余空格,不影响答案正确性

样例输入复制

5 4
2 3
4 1
5 2
2 2

样例输出复制

3