zoukankan      html  css  js  c++  java
  • BZOJ 1116: [POI2008]CLO 并查集

    成立时当且仅当每个联通块都有环存在。一个连通块若有m个点,则必有多于m条有向边,可用并查集来维护。

    #include<cstdio>
    #include<iostream>
    #define R register int
    #define pc(x) putchar(x)
    const int N=100010;
    using namespace std;
    inline int g() {
        R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-1:fix;
        do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix;
    }
    int n,m;
    int fa[N],r[N];
    bool flg;
    int getf(int x) {return x==fa[x]?x:fa[x]=getf(fa[x]);}
    signed main() {
        n=g(),m=g(); for(R i=1;i<=n;++i) fa[i]=i;
        for(R i=1;i<=m;++i) {
            R u=getf(g()),v=getf(g());
            if(u==v) r[u]=1;
            else fa[u]=v,r[v]|=r[u];
        } for(R i=1;i<=n;++i) if(!r[getf(i)]) {flg=true; break;}
        flg?(pc('N'),pc('I'),pc('E')):(pc('T'),pc('A'),pc('K')); pc('
    ');
    }
  • 相关阅读:
    C语言调试示例
    Tiff格式详解(转载)
    指纹
    twitter
    baidu
    NoSuchMethodError随记
    IllegalArgumentException异常
    Springboot2.2.9接入阿里云ES(带高亮查询)
    阿里云ECS安装cnpm
    阿里云ECS安装docker
  • 原文地址:https://www.cnblogs.com/Jackpei/p/10727153.html
Copyright © 2011-2022 走看看