【水】关于种类并查集
  • 板块灌水区
  • 楼主lovely_ckj
  • 当前回复10
  • 已保存回复10
  • 发布时间2021/4/25 18:43
  • 上次更新2023/11/5 00:08:12
查看原帖
【水】关于种类并查集
251130
lovely_ckj楼主2021/4/25 18:43

P1892 这道题

#include <iostream>
#include <cstdio>

using namespace std;

int n,m,fa[2505];

int find(int x)
{
	if(fa[x]!=x)
	{
		fa[x]=find(fa[x]);
	}
	return fa[x];
}

inline void push(int x,int y)
{
	int rx=find(x),ry=find(y);
	if(rx!=ry)
	{
		fa[rx]=ry;
	}
}

int main()
{
	ios::sync_with_stdio(false);
	cin>>n>>m;
	for(int i=1;i<=n*2;i++)
	{
		fa[i]=i;
	}
	for(int i=1;i<=m;i++)
	{
		char opt;
		int a,b;
		cin>>opt>>a>>b;
		if(opt=='F')
		{
			push(a,b);
		}
		else
		{
			push(a+n,b); // push(b,a+n);
			push(b+n,a); // push(a,b+n);
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		ans+=fa[i]==i;
	}
	cout<<ans<<endl;
	return 0;
}

为什么把有注释的那两行代码换成注释里的代码就 WA 了?

2021/4/25 18:43
加载中...