zoukankan      html  css  js  c++  java
  • hdu 1272 小希的迷宫

    题目:

        链接:点击打开链接

    题意:

    思路:

        一个并查集,题目就是要让你推断是否是一个连通的无环图。1>推断成环的时候,仅仅要推断输入边的两个点。有一个共同的父节点,那么这两个点就成环。2>推断连通的时候,仅仅要推断根节点数为1就可以。注意:当输入的这组数据仅仅有 0 0 时,依旧是满足,即应输出 "Yes"。

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define MAXN 100010
    using namespace std;
    
    int a,b;
    int flag;
    int root[MAXN],sign[MAXN];
    
    int find(int x)
    {
        int r = x;
        while(r != root[r])
            r = root[r];
        return r;
    }
    
    void merge(int x,int y)
    {
        int fx = find(x);
        int fy = find(y);
        if(fx != fy)
            root[fx] = fy;
        else//有共同的父节点
            flag = 0;
    }
    
    int main()
    {
        //freopen("input.txt","r",stdin);
        int ok;
        while(scanf("%d%d",&a,&b) != EOF && (a != -1 || b != -1))
        {
            memset(root,0,sizeof(root));
            if(a == 0 && b == 0)
            {
                printf("Yes
    ");
                continue;
            }
            for(int i=1; i<MAXN; i++)
            {
                root[i] = i;
                sign[i] = 0;
            }
            sign[a] = 1;
            sign[b] = 1;//输入的边的两个点
            flag = 1;
            merge(a,b);
            while(scanf("%d%d",&a,&b) && (a || b))
            {
                merge(a,b);
                sign[a] = 1;
                sign[b] = 1;
            }
            ok = 0;
            for(int i=1; i<MAXN; i++)
            {
                if(sign[i] && root[i] == i)
                    ++ok;//根结点数目
                if(ok>1)
                    flag = 0;
            }
            if(flag)
                printf("Yes
    ");
            else
                printf("No
    ");
        }
        return 0;
    }
    




  • 相关阅读:
    登录后返回到登录页问题
    vue组件插槽
    js定义类
    arguments.callee用法
    深拷贝的原生js实现
    Hybrid APP架构设计思路
    使用vlfeat 包中遇到的问题
    tensorflow faster rcnn 代码分析一 demo.py
    labelImg 工具
    faster rcnn 做识别
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4174727.html
Copyright © 2011-2022 走看看