```cpp
#include <iostream>
#include <algorithm>
#include <stdio.h>
#define ll long long
#define MAXS 10005
using namespace std;
int n,m,p,q;
int xi,xj,yi,yj,ans1,ans2,f11[500005],f22[500005];
int find(int x){
if(x==f11[x]) return x;
return f11[x]=find(f11[x]);
}
int find2(int x){
if(x==f22[x]) return x;
return f22[x]=find2(f22[x]);
}
void join(int c1,int c2){
int f1=find(c1),f2=find(c2);
if(f1!=f2) f11[f1]=f2;
return;
}
void join2(int c1,int c2){
int f1=find2(c1),f2=find2(c2);//这里
if(f1!=f2) f22[f1]=f2;
return;
}
int main(){
cin>>n>>m>>p>>q;
for(int i=1;i<=n;i++)
f11[i]=i;
for(int i=1;i<=m;i++)
f22[i]=i;
for(int i=1;i<=p;i++){
cin>>xi>>xj;
join(xi,xj);
}
for(int i=1;i<=q;i++){
cin>>yi>>yj;
yi*=-1;
yj*=-1;
join2(yi,yj);
}
int t1=find(1),t2=find2(1);//这里
for(int i=1;i<=n;i++){
if(t1==find(i))
ans1++;
}
for(int i=1;i<=m;i++){
if(t2==find2(i))
ans2++;
}
printf("%d\n",min(ans1,ans2));//这里
return 0;
}
```
有几个地方find2函数错用为find了,给你改好了,你看一下
by BLG_Wu @ 2023-07-24 00:22:17
%%%%%orzorzorz本蒟蒻已AC,此贴终
by zyh0516_lucky @ 2023-07-24 13:25:11