zoukankan      html  css  js  c++  java
  • [HDU

    基础并查集

    要注意的点就是成环和空集,成环即Union拥有相同的根的两个点必然就会成环,此时是输出“NO”的。

    而空集是要输出“YES”的。

    #include <bits/stdc++.h>
    
    using namespace std;
    int ok;
    int fa[100000 + 10];
    int vis[100000 + 10];
    int Find(int a)
    {
        int r=a;
        while(fa[r]!=r)
            r=fa[r];
        int i=a;
        int j;
    
        while(i!=r)
        {
            j=fa[i];
            fa[i]=r;
            i=j;
        }
        return r;
    
    }
    void merge(int a,int b)
    {
        int A,B;
        A=Find(a);
        B=Find(b);
        if(A!=B) fa[B]=A;
        else ok=1;
        
    }
    
    int main()
    {
        int temp1, temp2;
        while (~scanf("%d %d", &temp1, &temp2))
        {
            if(temp1==0&&temp2==0)
            {
                printf("Yes
    ");
                continue;
            }
    
            if (temp1 + temp2 == -2)
                break;
            ok = 0;
            int a = temp1, b = temp2;
            for (int i = 1; i <= 100000; i++)
            {
                fa[i] = i;
                vis[i] = 0;
            }
            merge(a, b);
            vis[a] = 1;
            vis[b] = 1;
            int flag = 0;
    
            while (scanf("%d %d", &a, &b))
            {
                if (!a && !b)
                    break;
                vis[a] = 1;
                vis[b] = 1;
                merge(a,b);
            }
            if (ok)
            {
                printf("No
    ");
                continue;
            }
            int total = 0;
            for (int i = 1; i <= 100000; i++)
                if (vis[i] && fa[i] == i)
                    total++;
    
            if (total != 1)
                printf("No
    ");
            else
                printf("Yes
    ");
        }
        return 0;
    }
  • 相关阅读:
    申论1
    why factory pattern and when to use factory pattern
    jvm的字符串池
    is assembler instruction and machine instuction atomic
    jvm本身的多线程机制
    final
    java类的加载
    path和classpath的用途
    jar -cmf file1 file2 file3命令
    MANIFEST.MF中的MF是什么意思
  • 原文地址:https://www.cnblogs.com/Vikyanite/p/11385443.html
Copyright © 2011-2022 走看看