60pts求助
查看原帖
60pts求助
297798
FANTA5TlC楼主2020/12/3 21:45
#include <bits/stdc++.h>
using namespace std;
long long f[5005];
long long e[5005];
long long n, m;
long long find(long long u){
	if(f[u] == u)
		return u;
	return f[u] = find(f[u]);
}
int main(){
	cin >> n >> m;
	for (int i = 1; i <= n; ++i){
		f[i] = i;
		e[i] = i;
	}
	for (int i = 1; i <= m; ++i){
		char c;
		long long u, v;
		cin >> c >> u >> v;
		if (c == 'F') f[find(u)] = find(v);
		if (c == 'E'){
			e[u] = v;
			e[v] = u;
		}
		f[find(i)] = find(e[e[i]]);
	}
	long long cnt = 0;
	for (int i = 1; i <= n; ++i)
		if (f[i] == i) ++cnt;
	cout << cnt << endl;
}
2020/12/3 21:45
加载中...