10分求调
查看原帖
10分求调
1066638
cnmm楼主2024/12/31 15:02
#include <bits/stdc++.h>
using namespace std;
int n,m,s[11000];
int find(int x){
	if(x==s[x])return x;
	return s[x]=find(s[x]);
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=2*n;i++)s[i]=i;
	for(int i=1;i<=m;i++){
		char a;
		int x,y;cin>>a>>x>>y;
		int fx=find(x),fy=find(y);
		if(a=='F'){
			if(fx!=fy)s[fx]=fy;
		}
		else {
			if(fx!=fy)s[fx]=find(y+n),s[fy]=find(x+n);
		}
	}
	int sum=0;
	for(int i=1;i<=n;i++)
		if(find(i)==i)sum++;
	cout<<sum;
}
2024/12/31 15:02
加载中...