• hdu1325 并查集


    这个题和小希的迷宫很相似但是差一些 有向图和无向图

    因为如果是一棵树 根只能有一个 因为是有向图 根肯定是最上面的 它的入度是0 这样的点只能有一个

    不能有环 

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<map>
    using namespace std;
    int fa[100050];
    int vis[100050];
    int ru[100050];
    int chu[100050];
    bool ok;
    void init()
    {
        for(int i=0;i<100040;i++)
        {
            fa[i]=i;
            vis[i]=0;
            ru[i]=0;
            chu[i]=0;
        }
        ok=true;
    
    }
    int find(int i)
    {
        return fa[i]==i?i:find(fa[i]);
    }
    void un(int a,int b)
    {
        int aa=find(a);
        int bb=find(b);
        if(aa==bb)
            ok=false;
        else
            fa[aa]=bb;
        return ;
    }
    int main()
    {
        int t=0;
        int a,b;
        while(~scanf("%d%d",&a,&b))
        {
    
            if(a<0&&b<0)
                break;
            t++;
            init();
            if(a==0&&b==0)
                printf("Case %d is a tree.
    ",t);
            else
            {
                un(a,b);
                vis[a]=1;
                vis[b]=1;
                chu[a]++;
                ru[b]++;
                while(~scanf("%d%d",&a,&b))
                {
                    if(a==0&&b==0)
                    break;
                    un(a,b);
                    vis[a]=1;
                    vis[b]=1;
                    chu[a]++;
                    ru[b]++;
                }
                int ma=0;
                int yi=0;
                int er=0;
                for(int i=0;i<100040;i++)
                {
                    if(vis[i]==1)
                    {
    
                        if(fa[i]==i)
                        {
                            ma++;
                        }
                        if(ru[i]==0)
                        {
                            yi++;
                        }
                    }
                }
    
                if(ma==1&&yi==1&&ok==true)
                    printf("Case %d is a tree.
    ",t);
                else printf("Case %d is not a tree.
    ",t);
            }
        }
    }
    

      

  • 相关阅读:
    高德地图API,获取和设置zoom级别和中心点
    高德地图API注册使用教程简答演示
    HTML5 视频流行插件之video.js
    audio实现自定义音频播放器
    HTML5 audio API事件
    HTML5之audio属性
    GitLab的安装及使用教程
    设计模式六大原则(PHP)
    面向对象设计
    自定义的异常类
  • 原文地址:https://www.cnblogs.com/rayrayrainrain/p/5189837.html
Copyright © 2020-2023  润新知