洛谷 P1892. 团伙
原题链接
中等
作者:
我是java同学
,
2024-01-26 17:32:24
,
所有人可见
,
阅读 38
#include <bits/stdc++.h>
using namespace std;
const int N = 2510;
int n, m;
int p[N];
int find(int x) {
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
int main() {
cin >> n >> m;
for (int i = 1; i <= 2 * n; i ++ ) p[i] = i;
while (m -- ) {
char c;
int a, b;
cin >> c >> a >> b;
if (c == 'F') {
a = find(a), b = find(b);
if (a != b) p[a] = b;
} else {
p[find(a + n)] = find(b);
p[find(b + n)] = find(a);
}
}
int res = 0;
for (int i = 1; i <= n; i ++ )
if (p[i] == i) res ++ ;
cout << res << endl;
return 0;
}