社区讨论

蒟蒻求助。。。

P2078朋友参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mi6xh5hn
此快照首次捕获于
2025/11/20 12:25
4 个月前
此快照最后确认于
2025/11/20 12:25
4 个月前
查看原帖
https://www.luogu.org/record/show?rid=11050427
四十分很绝望。。。
CPP
#include <bits/stdc++.h>

using namespace std;
map<int,int> f;
int gf(int x)
{
	if(x==f[x])
		return x;
	else
		return f[x]=gf(f[x]);
}
int merge(int x,int y)
{
	int fax=gf(x);
	int fay=gf(y);
	if(fax!=fay)
	{
		if(abs(fax)>abs(fay))
			swap(fax,fay);
		return f[fay]=fax;
	}
}
int query(int x,int y)
{
	if(f[x]==y)
		return 1;
	return 0;
}

int main()
{
	int n,m,p,q;
	cin >> n >> m >> p >> q;
	for(int i=0-m;i<=n;i++)
		f[i]=i;
	for(int i=1;i<=p;i++)
	{
		int s,e;
		cin >> s >> e;
		merge(s,e);
	} 
	for(int i=1;i<=q;i++)
	{
		int s,e; 
		cin >> s >> e;
		merge(s,e);
	}
	int male=0,female=0;
	for(int i=1;i<=n;i++)
	{
		male+=query(i,1);
	} 
	for(int i=0-m;i<=-1;i++)
	{
		female+=query(i,-1);
	}
	cout << min(male,female);
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...