2015年12月4日 星期五

[UVA] 10608 - Friends

/* 題目: UVa 10608 - Friends
 * Language: C++
 * Created on: 2015124
 *   Author: hanting
 */
#include <iostream>
#include <vector>
using namespace std;
vector<vector<int> > node;
vector<bool> visit;
void ConnectNode(int a, int b)
{
    node[a].push_back(b);
    node[b].push_back(a);
}
int DFS(int cur)
{
    visit[cur] = 1;
    int cnt = 1;
    for(int i = 0; i < node[cur].size(); i++)
    {
        int tmp = node[cur][i];
        if(!visit[tmp])
        {
            cnt += DFS(tmp);
        }
    }
    return cnt;
}
int main()
{
    int testCase = 0;
    cin >> testCase;
    while(testCase--)
    {
        int manN, pairN;
        cin >> manN >> pairN;
        visit.assign(manN+1, 0);
        node.assign(manN+1, vector<int>());
        for(int i = 0; i < pairN; i++)
        {
            int a, b;
            cin >> a >> b;
            ConnectNode(a, b);
        }
        int maxi = 0;
        for(int i = 1; i <= manN; i++)
        {
            if(!visit[i])
            {
                int groupNum = DFS(i);
                maxi = max(maxi, groupNum);
            }
        }
        cout << maxi << endl;
    }
    return 0;
}


沒有留言:

張貼留言