10WA
查看原帖
10WA
516508
windfall_waterfall楼主2022/2/19 20:49

冰茶机(大雾

#include<bits/stdc++.h>
using namespace std;
const int N=100000;
int n,m,z,q,ans1,ans2;
map<int,int> f;
void into(){
    for(int i=1 ; i<=N ; i++) f[i]=i;
}
int find(int x){
    if(f[x]==x) return x;
    else return f[x]=find(f[x]);
}
void merge(int x,int y){
    f[find(x)]=find(y);
}
int main(){
    cin>>n>>m>>z>>q;
    for(int i=1 ; i<=z ; i++){
        int x,y;
        cin>>x>>y;
        merge(x,y);
    }
    for(int i=1 ; i<=q ; i++){
        int x,y;
        cin>>x>>y;
        merge(x,y);
    }
    for(int i=1 ; i<=n ; i++){
        if(find(i)==find(1)) ans1++;
    }
    for(int i=1 ; i<=m ; i++){
        if(find(0-i)==find(-1)) ans2++;
    }
    cout<<min(ans1,ans2);
    return 0;
}
2022/2/19 20:49
加载中...