zoukankan      html  css  js  c++  java
  • poj 1703 Finde them, Catch them! (并查集)

    跟2492基本一样,不多说。

    code:

    #include<cstdio>
    using namespace std ;
    int f[100005] ;
    int r[100005] ;
    int n, m ;
    int find_Set(int x){
        int temp ;
        if(x==f[x]){
            return x ;
        }
        temp = f[x] ;
        f[x] = find_Set(temp) ;
        r[x] = (r[x]+r[temp]) % 2 ;//保持r[x]相对于根节点的稳定
        return f[x] ;
    }
    void Union(int x, int y, int fx, int fy){
        f[fy] = fx ;
        r[fy] = (r[x]+r[y]+1) % 2 ;
    }
    int main(){
        int t, i, j, x, y, fx, fy ;
        char c ;
        scanf("%d", &t) ;
        while(t--){
            scanf("%d%d", &n, &m) ;
            for(i=0; i<=n; i++){
                f[i] = i ;
                r[i] = 0 ;
            }
            getchar() ;
            while(m--){
                scanf("%c%d%d", &c, &x, &y) ;
                getchar() ;
                fx = find_Set(x) ;
                fy = find_Set(y) ;
                if(c=='D'){
                    Union(x, y, fx, fy) ;
                }
                if(c=='A'){
                    if(fx==fy){
                        if(r[x]==r[y])
                            printf("In the same gang.\n") ;
                        else
                            printf("In different gangs.\n") ;
                    }
                    else
                        printf("Not sure yet.\n") ;
                }
            }
        }
        return 0 ;

  • 相关阅读:
    tornado中form表单验证详解
    关于tornado中session的总结
    Linux常用命令
    css3动画属性详解 与超酷例子
    keepalive高可用的健康检查
    keepalive的nginx防火墙问题
    安装配置hadoop
    tmux的简单快捷键
    部署使用elk
    k8s搭建部署
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2332475.html
Copyright © 2011-2022 走看看