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 ;

  • 相关阅读:
    手动挂接NFS
    Linux中移动,复制,删除,打包排除某个目录或文件
    关于职业规划,尤其值得我们程序员学习、思考
    深入探究VC —— 链接器link.exe(4)
    用VC实现动态改变Windows的显示特性
    Windows常用控件的创建和使用
    如何添加自定义icon
    深入探究VC —— 资源编译器rc.exe(3)
    深入探究VC —— 编译器cl.exe(2)
    gluLookAt()
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2332475.html
Copyright © 2011-2022 走看看