zoukankan      html  css  js  c++  java
  • 【HDOJ】1829 A Bug's Life

    并查集变型。题意就是x与y是互斥的,下列是否数据是否可保证x-y是否均为互斥。

     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 #define MAXN 2005
     5 
     6 int pre[MAXN];
     7 int opp[MAXN];
     8 int n;
     9 bool flag;
    10 
    11 int find(int x) {
    12     return pre[x]==x ? x:pre[x]=find(pre[x]);
    13 }
    14 
    15 void merge(int x, int y) {
    16     if (!flag) return ;
    17     x = find(x);
    18     y = find(y);
    19     if (x == y) {
    20         flag = false;
    21         return;
    22     }
    23     if (opp[x]) pre[opp[x]] = y;
    24     if (opp[y]) pre[opp[y]] = x;
    25     opp[x] = y;
    26     opp[y] = x;
    27 }
    28 
    29 int main() {
    30     int case_n, m;
    31     int i, j, x, y;
    32 
    33     scanf("%d", &case_n);
    34 
    35     for (j=1; j<=case_n; ++j) {
    36         scanf("%d %d", &n, &m);
    37         for (i=1; i<=n; ++i)
    38             pre[i] = i;
    39         memset(opp, 0, sizeof(opp));
    40         flag = true;
    41         while (m--) {
    42             scanf("%d %d", &x, &y);
    43             merge(x, y);
    44         }
    45         printf("Scenario #%d:
    ", j);
    46         if (flag)
    47             printf("No suspicious bugs found!
    
    ");
    48         else
    49             printf("Suspicious bugs found!
    
    ");
    50     }
    51 
    52     return 0;
    53 }
  • 相关阅读:
    抽象类使用细节
    super关键字
    JDK,JRE,JVM三者之间的爱恨情仇
    LinkedHashSet
    HashSet扩容成红黑树机制
    Set之HashSet
    finally关键字
    Hashcode方法
    equals方法和==的区别
    LinkedList
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3781656.html
Copyright © 2011-2022 走看看