• BZOJ 1116 [POI2008]CLO(并查集)


    题意

    Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个town都有且只有一个入度 (输出Yes或No)
    数据范围:2 ≤ n ≤ 100 000, 1 ≤ m ≤ 200 000

    思路

    首先我们可以推出一个性质,当且仅当某一个连通块中没有环存在输出No
    (题面一定要仔细看,看错题意连样例都看不懂)

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<algorithm>
     6 using namespace std;
     7 const int N=200010;
     8 int n,m,fa[N],cnt[N];
     9 int find(int x){
    10     if(fa[x]==x)return x;
    11     else return fa[x]=find(fa[x]);
    12 }
    13 int main(){
    14     scanf("%d%d",&n,&m);
    15     for(int i=1;i<=n;i++){
    16         fa[i]=i;
    17     }
    18     for(int i=1;i<=m;i++){
    19         int u,v;
    20         scanf("%d%d",&u,&v);
    21         int x=find(u);
    22         int y=find(v);
    23         if(x==y){
    24             cnt[x]++;
    25         }
    26         else{
    27             fa[x]=y;
    28             cnt[y]+=cnt[x];
    29         }
    30     }
    31     for(int i=1;i<=n;i++){
    32         int f=find(i);
    33         if(cnt[f]==0){
    34             printf("NIE");
    35             return 0;
    36         }
    37     }
    38     printf("TAK");
    39     return 0;
    40 }
  • 相关阅读:
    Spherical Harmonic Lighting
    EV/ISO/Stop
    opengles dither
    rgb颜色空间到xyz空间的映射
    LUT color grading
    tonemapping
    ue4 sequencer
    pbr -physical based rendering
    BRDF
    /sockjs-node/info 报错问题
  • 原文地址:https://www.cnblogs.com/Xu-daxia/p/9559798.html
Copyright © 2020-2023  润新知