样例在本地测的话是对的,但是放在洛谷IDE上面测就是错的,求知道的大佬指点亿下下
#include<bits/stdc++.h>
using namespace std;
inline int read(){
int x=0,f=1;char s=getchar();
while (s>'9'||s<'0'){
if (s=='-') f=-f;
s=getchar();
}
while (s>='0'&&s<='9'){
x=x*10+s-'0';
s=getchar();
}
return x*f;
}
const int N = 1e4;
int n,m,x,y,fa[N+10],en[N+10],ans;
char op;
int get(int x) {
if (fa[x]==x) return x;
else return fa[x]=get(fa[x]);
}
void marge(int x,int y) {
x=get(x);y=get(y);
fa[x]=y;
}
int main(){
n=read();m=read();
for (int i=1;i<=n*2;++i) fa[i]=i;
for (int i=1;i<=m;++i) {
op=getchar();
x=read();y=read();
if (op=='F') marge(x,y);
else {
if (!en[x]) en[x]=get(y);
else marge(en[x],y);
if (!en[y]) en[y]=get(x);
else marge(en[y],x);
}
}
for (int i=1;i<=n;++i) {
fa[i]=get(i);
if (fa[i]==i) ans++;
}
printf("%d",ans);
return 0;
}