40分,求助
查看原帖
40分,求助
542974
William_qwq楼主2022/4/23 15:25
#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
int pre[2010];
set<int> s;
int find(int x)
{
	if(x==pre[x]) return x;
	return pre[x]=find(pre[x]);
}
void join(int x,int y)
{
	int fx=find(x);
	int fy=find(y);
	pre[fx]=fy;
}
int main()
{
	int i,j,k;
	cin>>n;
	for(i=1;i<=n*2;i++)
	{
		pre[i]=i;
	}
	cin>>m;
	for(i=1;i<=m;i++)
	{
		char opt;
		int x,y;
		cin>>opt>>x>>y;
		if(opt=='F')
		{
			join(x,y);
			join(x+n,y+n);
		}
		if(opt=='E')
		{
			join(x,y+n);
			join(x+n,y);
		}
	}
	for(i=1;i<=n;i++)
	{
		s.insert(find(i));
	}
	cout<<s.size();
	return 0;
}

2022/4/23 15:25
加载中...