90分#7wa求调
查看原帖
90分#7wa求调
951329
20070108wxy楼主2023/6/27 17:31
#include<bits/stdc++.h>
#include<set>
using namespace std;
int father[2000005];
int find(int x)
{
	if(father[x]==x)
	{
		return x;
	}
	else
	{
		return father[x]=find(father[x]);
	}
}
void hb(int x,int y)
{
	father[find(y)]=find(x);
	return;
}
int e[5005];
int f[5005];
set<int>a;
int main()
{
	int n,m;
	cin>>n;
	cin>>m;
	for(int i=1;i<=n;i++)
	{
		father[i]=i;
	}
	char opt;
	int p,q;
	for(int i=1;i<=m;i++)
	{
		cin>>opt>>p>>q;
		if(opt=='F')
		{
			hb(p,q);
		}
		if(opt=='E')
		{
			if(!f[p])
			{
				f[p]=q;
			}
			else
			{
				hb(f[p],q);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		a.insert(find(i));
	}
	cout<<a.size();
}
2023/6/27 17:31
加载中...