AcWing 784. 强盗团伙
原题链接
简单
作者:
云_580
,
2024-09-14 16:07:40
,
所有人可见
,
阅读 1
#include<bits/stdc++.h>
using namespace std;
const int N = 2e4+10;
//1~n代表朋友域,n+1~2*n代表敌人域
int n,m,ans;
int fa[N];
int find(int k){
return fa[k]==k?k:fa[k]=find(fa[k]);
}
int main(){
cin>>n>>m;
for(int i = 1;i<=2*n;i++)fa[i]=i;
for(int i = 1;i<=m;i++){
char ch;
int a,b;
cin>>ch>>a>>b;
if(ch=='E'){
//b的敌人b+n和a是同类
//a的敌人a+n和b是同类
fa[find(b+n)]=find(a);
fa[find(a+n)]=find(b);;
}else{
fa[find(b)]=find(a);
}
}
for(int i = 1;i<=n;i++)if(fa[i]==i)ans++;
cout<<ans;
return 0;
}