有没有大佬帮忙看看P1892 90分 WA#7……
#include<bits/stdc++.h>
#define N 1010
#define INF 0x3f3f3f3f
using namespace std;
int n, m, f[N], d[N], ans = 0;
int find(int x) {
if (f[x] != x) return f[x] = find(f[x]);
else return f[x];
}
void unions(int x, int y) {
f[y] = x;
}
int main() {
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) f[i] = i;
for (int i = 1; i <= m; i++) {
char cp;
int p, q;
cin >> cp;
scanf("%d %d", &p, &q);
if (cp == 'F') unions(find(p), find(q));
if (cp == 'E') {
if (d[p]) unions(find(d[p]), find(q));
d[p] = q;
}
}
for (int i = 1; i <= n; i++) {
if (f[i] == i) ans++;
}
printf("%d", ans);
return 0;
}