AcWing 784. 强盗团伙
原题链接
简单
作者:
imnoob
,
2022-03-15 18:32:15
,
所有人可见
,
阅读 223
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 2e3 + 10;
int p[N];
int find(int x)
{
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
void unionset(int x,int y){
int fx = find(x), fy = find(y);
p[fx] = fy;
}
int main(){
int n, m;
cin >> n >> m;
for(int i = 0;i <= 2 * n;i ++)
p[i] = i;
for(int i = 0;i < m;i ++){
char op;
int a, b;
cin >> op >> a >> b;
if(op == 'E'){
unionset(a + n, b);
unionset(b + n, a);
}else{
unionset(a, b);
}
}
int res = 0;
for(int i = 1;i <= n;i ++){
if(p[i] == i)
res ++;
}
cout << res;
}