rt
下面这份代码在 yc==1 时为什么必须 merge(p+n,q);merge(q+n,p);
而不能
merge(p,q+n);merge(q,p+n);
#include<bits/stdc++.h>
using namespace std;
#define debug cout<<"YxAns"<<endl
#define int long long
const int YxAns = 5100 ;
int n,m,fa[YxAns],ans;
inline int read(){
int x;
scanf("%lld",&x);
return x;
}
inline int Get_ch(){
char c;
cin>>c;
if(c=='E') return 1;
return 0;
}
inline int Get_Fa(int u){
if(fa[u]==u) return fa[u];
return fa[u]=Get_Fa(fa[u]);
}
inline void Merge(int u,int v){
int Fu=Get_Fa(u),Fv=Get_Fa(v);
if(Fu==Fv) return ;
fa[Fu]=Fv;
}
signed main(){
n=read();m=read();
for(int i=1;i<=2*n;i++)
fa[i]=i;
for(int i=1,yc,p,q;i<=m;i++){
yc=Get_ch();p=read();q=read();
if(yc){
Merge(q+n,p);
Merge(p+n,q);
}
else
Merge(p,q);
}
for(int i=1;i<=n;i++)
if(fa[i]==i) ans++;
return 0*printf("%lld\n",ans);
}