80分求助,谢谢谢谢谢谢谢
  • 板块P2078 朋友
  • 楼主m_m_m
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/29 19:51
  • 上次更新2023/11/29 22:03:59
查看原帖
80分求助,谢谢谢谢谢谢谢
481729
m_m_m楼主2023/11/29 19:51
#include<bits/stdc++.h>
using namespace std;
int fa[20101][2];//父亲,0,儿子数量1 
int find(int x){
	if(fa[x][0]!=x)fa[x][0]=find(fa[x][0]);
	return fa[x][0];
}
int n,p,m,q;
int main()
{
		cin>>n>>m>>p>>q;
		fa[0][0]=0;fa[0][1]=1;
	for(int i=1;i<=n;i++)fa[i][0]=i,fa[i][1]=1;
	
		for(int i=1;i<=p;i++)
	{
		int x,y;
		cin>>x>>y;
		int a=find(x),b=find(y);
		if(a!=b)fa[a][0]=b,
		fa[b][1]+=fa[a][1];
	}
	int u=fa[fa[1][0]][1];
	fa[0][0]=0;fa[0][1]=1;
	for(int i=1;i<=m;i++)fa[i][0]=i,fa[i][1]=1;
	
		for(int i=1;i<=q;i++)
	{
		int x,y;
		cin>>x>>y;
		x=abs(x),y=abs(y);
		int a=find(x),b=find(y);
		
		if(a!=b)fa[a][0]=b,
		fa[b][1]+=fa[a][1];
	}
	cout<<min(u,fa[fa[1][0]][1]);

	
	
	
	
	return 0;
}
2023/11/29 19:51
加载中...