• A Bug's Life____并查集


    English preparation:

    falsify      伪造;篡改;歪曲;证明...虚假

    the sexual behavior of a rare species of bugs.  一种稀有昆虫的性行为。

    the number of scenarios      场景数量

    consecutively  连续地

    趣语:

    这个时代,是个雷人的时代。凤姐的出现,让我们对自己的审美观产生了怀疑;
    著姐的降临,使我们对自己的性取向做出了更正。而如今,bug们被同性恋了,这直接就是商人们为了扩大HS产业的炒作。
    哪一天,也许你也被变态了,被脑残了。。。

    题目大意:给出n条虫子,m个配对(男<->女)的情况,问数据有没有错误(出现同性配对)?

     

    Reference:

    1.https://blog.csdn.net/freezhanacmore/article/details/8799495

    2.https://www.cnblogs.com/dongsheng/archive/2012/08/08/2627917.html

    3.https://blog.csdn.net/pku_Coder/article/details/53520171

    codes:

    #include<cstdio>
    #include<iostream>
    const int maxn=2000+10;
    int p[maxn]; //记录父节点
    int r[maxn]; //记录与父节点关系, 0 同类, 1异类
     
    int find(int x)
    {
        if(x==p[x]) return x;
        
        int t=p[x];
        p[x]=find(p[x]);
        r[x]=(r[x]+r[t])%2; //每次回溯更新一次父节点,相应更新关系
        return p[x];
    }
     
    void Union(int x,int y)
    {
        int fx=find(x);
        int fy=find(y);
     
        p[fx]=fy; //任意
        r[fx]=(r[x]+1+r[y])%2; //r[]没有方向.我就是这一步的关系,这一个式子,这一处关节没有搞明白! 
    }
    void set(int n)
    {
        for(int i=1;i<=n;i++)
        {
            p[i]=i;
            r[i]=0;
        }
    }
    
    int main()
    {
        int T;
        scanf("%d",&T);
        for(int i=1;i<=T;i++)
        {
            int n,m;
            scanf("%d%d",&n,&m);
            set(n);
            int x,y;
            bool flag=true;
            while(m--)
            {
                scanf("%d%d",&x,&y); //本应不同类
                if(find(x)==find(y))
                {
                    if(r[x]==r[y]) //如果同类
                    {
                        flag=false;
                        continue;
                    }
                }
                else Union(x,y);
            }
            printf("Scenario #%d:
    ",i);
            if(flag) printf("No suspicious bugs found!
    ");
            else     printf("Suspicious bugs found!
    ");
            printf("
    ");
        }
        return 0;
    }
     
     
     
  • 相关阅读:
    Mysql Group by week
    查询数据库占用磁盘大小
    菜根谭#117
    菜根谭#116
    保护眼睛颜色的RGB数值
    手动释放linux内存和缓存
    菜根谭#115
    菜根谭#114
    菜根谭#113
    spring mvc静态资源文件的引用
  • 原文地址:https://www.cnblogs.com/dragondragon/p/11624819.html
Copyright © 2020-2023  润新知