zoukankan      html  css  js  c++  java
  • [COGS 2089.] 平凡的测试数据 带权并查集

    差点就撸上LCT了.......

    带权并查集就是在并查集的基础上稍作修改,我的用穿址实现的有人用记录原父亲来实现。

    #include<cstdio>
    #define N 300010
    using namespace std;
    inline int read()
    {
       int sum=0;
       char ch=getchar();
       while(ch<'0'||ch>'9')ch=getchar();
       while(ch>='0'&&ch<='9')
       {
         sum=(sum<<1)+(sum<<3)+ch-'0';
         ch=getchar();
       }
       return sum;
    }
    int n,m,f[N],a[N];
    int find(int x,int &y)
    {
       if(x==f[x])return x;
       f[x]=find(f[x],y);
       y=a[x]^=y;
       return f[x];
    }
    int main()
    {
       n=read(),m=read();
       for(int i=1;i<=n;i++)a[i]=read(),f[i]=i;
       while(m--)
       {
         int opt=read(),x=read(),y;
         if(opt==1) f[x]=read();
         else
         {
            find(x,y=0);
            int ans=(x==f[x])?a[x]:(a[x]^a[f[x]]);
            printf("%d
    ",ans);
         }
       }
       return 0;
    }
  • 相关阅读:
    mongodb副本集群搭建
    redis 哨兵集群搭建
    mysql binlog备份
    MySQL 日志
    mysql 事务及innodb隔离级别
    sysbench使用
    PXC安装
    mysql搭建主从数据库
    GTID
    文件的压缩和解压
  • 原文地址:https://www.cnblogs.com/TSHugh/p/7241884.html
Copyright © 2011-2022 走看看