P1892 [BOI2003]团伙
#include<iostream>
#include<stdio.h>
using namespace std;
int fa[5005],enm[5005];
int n,m,sum,x,y;
char P;
int find(int x){
if(fa[x]==x) return x;
else return fa[x]=find(fa[x]);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
fa[i]=i;
}
sum=n;
for(int i=1;i<=m;i++){
cin>>P;
scanf("%d%d",&x,&y);
if(P=='F'){
int xx=find(x);
int yy=find(y);
if(xx!=yy){
sum--;
}
}
if(P=='E'){
if(!enm[x]) enm[x]=find(y);
else {fa[find(y)]=enm[x]; sum--;}
if(!enm[y]) enm[y]=find(x);
else {fa[find(x)]=enm[y]; sum--;}
}
}
printf("%d",sum);
}