zoukankan      html  css  js  c++  java
  • 父节点回路hdu 1272 小希的迷宫

    首先声明,我是一个菜鸟。一下文章中涌现技术误导情况盖不负责

        这个题目就是让你用并查集判断是否是有回路和是否是连通图.判断是否是连通图就是看是否是只有一个接点的father是他自己本身.看是否是有回路,就是看是否是有两个接点的father是相同的,因为无论如何第一次是合并节点,当前的父节点必定不同直接合并,也就是找一个当父节点,但是到前面的时候如果父节点涌现相同了,必定是有回路.但是要特别注意输入输出.还有全是0的时候一定是yes

        每日一道理
    那蝴蝶花依然花开花落,而我心中的蝴蝶早已化作雄鹰飞向了广阔的蓝天。
    #include<iostream>
    using namespace std;
    int father[100005],sign[100005];
    int find_ant(int x)
    {
        if(x!=father[x])
            father[x]=find_ant(father[x]);
        return father[x];
    }
    int flag;
    void unin(int x,int y)
    {
        int x_x,y_y;
        x_x=find_ant(x);
        y_y=find_ant(y);
        if(x_x!=y_y)
            father[x_x]=y_y;
        else flag=1;
    }
    int main()
    {
        int a,b,i,sum;
        while(cin>>a>>b)
        {
            sum=0;
            flag=0;
            for(i=1;i<=100000;i++)
            {
                father[i]=i;
                sign[i]=0;
            }
            if(a==-1&&b==-1)
                break;
            if(a==0&&b==0)
            {
                cout<<"Yes"<<endl;
                continue;
            }
            sign[a]=1;
            sign[b]=1;
            unin(a,b);
            while(cin>>a>>b)
            {
                if(a==0&&b==0)
                    break;
                sign[a]=1;
                sign[b]=1;
                unin(a,b);
            }
            for(i=1;i<=100000;i++)
                if(sign[i]==1&&father[i]==i)
                    sum=sum+1;
            if(sum>1||flag==1)
                cout<<"No"<<endl;
            else cout<<"Yes"<<endl;
        }
        return 0;
    }

        
     

    文章结束给大家分享下程序员的一些笑话语录: 看到有人回帖“不顶不是中国人”,他的本意是想让帖子沉了。

  • 相关阅读:
    《算法导论》第二章 入门
    《算法导论》第6章 堆排序 (3)K路归并
    斐波那契数列算法分析
    关于程序员成长的一点思考
    《C和指针》读书笔记
    《算法导论》第6章 堆排序 (1)最大堆与堆排序
    《算法导论》第6章 堆排序 (2)优先级队列
    WWF入门(二)(笔记):winform调用工作流 中庸
    mysql or条件可以使用索引而避免全表
    HBase技术介绍
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3085834.html
Copyright © 2011-2022 走看看