zoukankan      html  css  js  c++  java
  • hdu1829(A Bug's Life)

    题目链接:传送门

    题目大意:有n个昆虫,有m组关系,接下来m行表示两个昆虫性别不同,问是否有矛盾情况(同男同女)

    题目思路:并查集的高级应用,开两倍数组大小,后n个数组表示和当前昆虫不同性别的集合

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <algorithm>
    #include <cstring>
    #include <stack>
    #include <cctype>
    #include <queue>
    #include <string>
    #include <vector>
    #include <set>
    #include <map>
    #include <climits>
    #define lson root<<1,l,mid
    #define rson root<<1|1,mid+1,r
    #define fi first
    #define se second
    #define seg int root,int l,int r
    #define ping(x,y) ((x-y)*(x-y))
    #define mst(x,y) memset(x,y,sizeof(x))
    #define mcp(x,y) memcpy(x,y,sizeof(y))
    #define Min(x,y) (x<y?x:y)
    #define Max(x,y) (x>y?x:y)
    using namespace std;
    #define gamma 0.5772156649015328606065120
    #define MOD 100000007
    #define inf 0x3f3f3f3f
    #define N 100005
    #define maxn 10001000
    typedef long long LL;
    typedef pair<int,int> PII;
    
    int fp[N];
    int findp(int x){return fp[x]==x?x:fp[x]=findp(fp[x]);}
    
    int main(){
        int i,j,group,k,v,x,y,Case=0,n,m;
        scanf("%d",&group);
        while(group--){
            int flag=0;
            scanf("%d%d",&n,&m);
            for(i=0;i<=n<<1;++i) fp[i]=i;
            for(i=0;i<m;++i){
                scanf("%d%d",&x,&y);
                if(!flag){
                    int xa=findp(x);
                    int ya=findp(y);
                    if(xa==ya) flag=1;
                    else{
                        fp[xa]=findp(y+n);
                        fp[ya]=findp(x+n);
                    }
                }
            }
            printf("Scenario #%d:
    ",++Case);
            if(flag) printf("Suspicious bugs found!
    
    ");
            else printf("No suspicious bugs found!
    
    ");
        }
        return 0;
    }
  • 相关阅读:
    腾讯为什么会出Q立方浏览器?
    String,StringBuffer与StringBuilder的区别??
    Linux Socket编程(不限Linux)
    将div显示在屏幕正中央
    计算鼠标坐标是否在指定范围内
    正则
    ajax异步通信
    CSS Float 换行
    jQuery强大的jQuery选择器
    给display字段增加筛选功能
  • 原文地址:https://www.cnblogs.com/Kurokey/p/5451406.html
Copyright © 2011-2022 走看看