zoukankan      html  css  js  c++  java
  • 并查集写成一个类

    这个应该不用多说。。

     1 #include <cstdio>
     2 using namespace std;
     3 
     4 const int maxn=10005;
     5 int n, m;
     6 
     7 struct Ufset{
     8     int fa[maxn], size[maxn];
     9 
    10     Ufset(int n){
    11         for (int i=1; i<=n; ++i){
    12             fa[i]=i;
    13             size[i]=1;
    14         }
    15         return;
    16     }
    17 
    18     int find(int x){
    19         int anc, realf;
    20         for (anc=x; fa[anc]!=anc; anc=fa[anc]);
    21         while (fa[x]!=x){
    22             realf=fa[x];
    23             fa[x]=anc;
    24             x=realf;
    25         }
    26         return anc;
    27     }
    28 
    29     bool in_same(int x, int y){
    30         if (find(x)!=find(y)) return false;
    31         else return true;
    32     }
    33 
    34     void merge_to(int x, int y){ //merge x to y
    35         int fx=find(x), fy=find(y);
    36         fa[fx]=fy;
    37         return;
    38     }
    39 
    40     void merge(int x, int y){
    41         if (size[x]>size[y])
    42             merge_to(y, x);
    43         else merge_to(x, y);
    44     }
    45 };
    46 
    47 int main(){
    48     scanf("%d%d", &n, &m);
    49     Ufset ufset1(n);
    50     int z, x, y;
    51     for (int i=0; i<m; ++i){
    52         scanf("%d%d%d", &z, &x, &y);
    53         if (z==1)
    54             ufset1.merge(x, y);
    55         else
    56             printf("%c
    ",
    57                    ufset1.in_same(x, y)?'Y':'N');
    58     }
    59     return 0;
    60 }

    来自luoguP3367

  • 相关阅读:
    SSM整合
    SpringMVC学习笔记
    Spring笔记
    Spring之AOP在XML中的配置方法
    Spring之AOP的注解配置
    Mybatis学习笔记
    css学习笔记
    DOM技术
    Javascript学习笔记
    Hive导出复杂数据到csv文件
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/7450052.html
Copyright © 2011-2022 走看看