// UVa 10608 - Friends
#include <iostream>
using namespace std;
int color[30001], count[30001], next[30001], start[30001], end[30001];
void paint(int a, int b) {
for (int j = start[a]; j != 0; j = next[j])
color[j] = b;
count[b] += count[a];
next[end[b]] = start[a];
end[b] = end[a];
}
int main() {
int t;
for (cin >> t; t; t--) {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
color[i] = i;
count[i] = 1;
next[i] = 0;
start[i] = i;
end[i] = i;
}
for (; m; m--) {
int a, b;
cin >> a >> b;
if (color[a] == color[b])
continue;
if (count[color[a]] < count[color[b]])
paint(color[a], color[b]);
else
paint(color[b], color[a]);
}
int sol = min(1, n);
for (int i = 1; i <= n; i++)
if (count[color[i]] > sol)
sol = count[color[i]];
cout << sol << endl;
}
return 0;
}
Tuesday, August 25, 2015
UVa 10608 - Friends
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment