20pts求助qwq
查看原帖
20pts求助qwq
1270328
wht59111570楼主2024/7/18 09:05
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define N 25000
ll fa[N];
ll find(ll x)
{
	if(fa[x]==x) return x;
	return fa[x]=find(fa[x]);
}
void merge(ll a,ll b)
{
	int x=find(a),y=find(y);
	if(fa[x]!=fa[y]);
	fa[x]=y;
}
ll n,m,x,y;
char p;
int main()
{
	cin>>n>>m;
	for(ll i=1;i<=n*2;i++) fa[i]=i;
	for(ll i=1;i<=m;i++)
	{
		cin>>p>>x>>y;
		if(p=='E')
		{
			merge(x+n,y);
			merge(y+n,x);		
		}
		else 
		{
			merge(x,y);
		}
	}
	ll ans=0;
	for(ll i=1;i<=n;i++)	
	{
		if(i==fa[i]) ans++;
	}
	cout<<ans;
	return 0;
}
2024/7/18 09:05
加载中...