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;
    }
  • 相关阅读:
    ListCtrl中垂直滚动条自动滚动
    auth组件
    母版的继承
    mysql数据备份和恢复
    部署MHA
    安装mysql
    yum源优化
    存储过程
    redis哨兵、集群
    redis主从同步
  • 原文地址:https://www.cnblogs.com/TSHugh/p/7241884.html
Copyright © 2011-2022 走看看