zoukankan      html  css  js  c++  java
  • P2078 朋友

    算法

    并查集+map

    思路

    与负数,用map

    代码

    #include<bits/stdc++.h>
    #define r(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;int n,m,p,q,u,v,tat,tot;
    map<int,int>f;//STl大法好
    int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
    void judge(int x,int y){f[find(x)]=find(y);}
    bool too(int x,int y){return find(x)==find(y);}
    int main()
    {
        scanf("%d%d%d%d",&n,&m,&p,&q);//输入
        r(i,-1*m,n) f[i]=i;//初始化
        r(i,1,p+q)//直接一起做
         {
            scanf("%d%d",&u,&v);
            judge(u,v);
         }
        r(i,-1*m,-1)
         if(too(f[i],-1)) tat++;//找连接在一起的
        r(i,1,n)
         if(too(f[i],1)) tot++;//同理
        printf("%d",min(tat,tot));//几对朋友就是最小值
    }
    

      

  • 相关阅读:
    控件视图的实现原理
    建造者模式
    leetcode701
    leetcode991
    leetcode990
    leetcode989
    leetcode988
    leetcode987
    leetcode986
    leetcode985
  • 原文地址:https://www.cnblogs.com/ruanmowen/p/12730127.html
Copyright © 2011-2022 走看看