社区讨论
求破70
P2078朋友参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi6gtv7e
- 此快照首次捕获于
- 2025/11/20 04:39 4 个月前
- 此快照最后确认于
- 2025/11/20 04:39 4 个月前
CPP
#include<iostream>
#include<cstdio>
#include<cmath>
#define maxn 1000001
using namespace std;
int f1[maxn],f2[maxn];
int n,m,p,q,sum1,sum2;
int find1(int x)
{
if(f1[x]!=x) f1[x]=find1(f1[x]);
return f1[x];
}
int find2(int x)
{
if(f2[x]!=x) f2[x]=find2(f2[x]);
return f2[x];
}
int main()
{
cin>>n>>m>>p>>q;
for(int i=1;i<=p;i++) f1[i]=i;
for(int i=1;i<=q;i++) f2[i]=i;
for(int i=1;i<=p;i++)
{
int x,y,t1,t2;
cin>>x>>y;
t1=find1(x),t2=find1(y);
if(t1!=t2) f1[t2]=t1;
}
for(int i=1;i<=q;i++)
{
int x,y,t1,t2;
cin>>x>>y;
x=abs(x),y=abs(y);
t1=find2(x),t2=find2(y);
if(t1!=t2) f2[t2]=t1;
}
for(int i=1;i<=n;i++)
{
if(find1(i)==find1(1)) sum1++;
}
for(int i=1;i<=m;i++)
{
if(find2(i)==find2(1)) sum2++;
}
cout<<min(sum1,sum2)<<endl;
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...