zoukankan      html  css  js  c++  java
  • 【洛谷 2078】朋友

    题目背景

    小明在A公司工作,小红在B公司工作。

    题目描述

    这两个公司的员工有一个特点:一个公司的员工都是同性。

    A公司有N名员工,其中有P对朋友关系。B公司有M名员工,其中有Q对朋友关系。朋友的朋友一定还是朋友。

    每对朋友关系用两个整数(Xi,Yi)组成,表示朋友的编号分别为Xi,Yi。男人的编号是正数,女人的编号是负数。小明的编号是1,小红的编号是-1.

    大家都知道,小明和小红是朋友,那么,请你写一个程序求出两公司之间,通过小明和小红认识的人最多一共能配成多少对情侣。(包括他们自己)

    输入格式

    第1行,4个空格隔开的正整数N,M,P,Q。

    之后P行,每行两个正整数Xi,Yi。

    之后Q行,每行两个负整数Xi,Yi。

    输出格式

    一行,一个正整数,表示通过小明和小红认识的人最多一共能配成多少对情侣。(包括他们自己)

    输入输出样例

    输入 #1
    4 3 4 2
    1 1
    1 2
    2 3
    1 3
    -1 -2
    -3 -3
    
    输出 #1
    2

    说明/提示

    对于30%数据,N,M<=100,P,Q<=200

    对于80%数据,N,M<=4000,P,Q<=10000.

    对于全部数据,N,M<=10000,P,Q<=20000。

     题解:就求男生有多少个和1认识,女生有多少人和-1认识,然后整合一下
                取两者直接取小的即可。(毕竟不可一夫多妻或一妻多夫hhh)
     
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<cmath>
    #include<cstring>
    #include<cstdlib>
    #include<cstdio>
    using namespace std;
    
    const int N=20005;
    int n,m,p,q,x,y,a1,a2;
    int fa1[N],fa2[N],ans1,ans2;
    
    int find1(int x){
       if(fa1[x]==x) return x;
       return fa1[x]=find1(fa1[x]);
    }
    int find2(int x){
       if(fa2[x]==x) return x;
       return fa2[x]=find2(fa2[x]);
    }
    
    int main(){
       
        scanf("%d %d %d %d",&n,&m,&p,&q);
        
        for(int i=1;i<=n;i++) fa1[i]=i;
        for(int i=1;i<=m;i++) fa2[i]=i;
        
        for(int i=1;i<=p;i++){
            scanf("%d %d",&x,&y);
            a1=find1(x); a2=find1(y);
            if(a1!=a2) fa1[a2]=a1;
        }
        for(int i=1;i<=q;i++){
            scanf("%d %d",&x,&y);
            x=-x; y=-y;
            a1=find2(x); a2=find2(y);
            if(a1!=a2) fa2[a2]=a1;
        }
        
        for(int i=1;i<=n;i++)
            if(find1(i)==find1(1)) ans1++;
        for(int i=1;i<=m;i++)
            if(find2(i)==find2(1)) ans2++;
            
        printf("%d",min(ans1,ans2));
        return 0;
    }
  • 相关阅读:
    JSP一个简单的项目实现教程
    多个Excel文件快速导入到DB里面
    NotePad++左侧导航
    简单实用JSTL标签库
    Eclipse导入现有项目
    Java工具Eclipse
    winform窗体只能放大不能缩小
    ref out

    数组
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/11503917.html
Copyright © 2011-2022 走看看