/* 題目: UVa 10608 - Friends
 *
Language: C++
 *
Created on: 2015年12月4日
 *  
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;
}
沒有留言:
張貼留言