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

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

#include<cstdio>
#define N 300010
using namespace std;
inline int read()
{
int sum=;
char ch=getchar();
while(ch<''||ch>'')ch=getchar();
while(ch>=''&&ch<='')
{
sum=(sum<<)+(sum<<)+ch-'';
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=;i<=n;i++)a[i]=read(),f[i]=i;
while(m--)
{
int opt=read(),x=read(),y;
if(opt==) f[x]=read();
else
{
find(x,y=);
int ans=(x==f[x])?a[x]:(a[x]^a[f[x]]);
printf("%d\n",ans);
}
}
return ;
}

最新文章

  1. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 2
  2. Azure PowerShell (6) 设置单个Virtual Machine Endpoint
  3. jq 获取元素的宽度时,如何取得小数部分
  4. session和cookie的区别和联系
  5. Vue.2.0.5-Render 函数
  6. MySQL Replication的Reset slave重置命令
  7. 【PHP设计模式 04_GongChang.php】 工厂方法
  8. 【Todo】Mybatis学习-偏理论
  9. 暑假学习日记:Splay树
  10. java code to byte code--partone--reference
  11. [CSS3] CSS Media Queries
  12. javascript 学习总结(五)Function对象
  13. Python数据库访问之SQLite3、Mysql
  14. 通过RVM安装Ruby失败
  15. POJ1006: 中国剩余定理的完美演绎
  16. TSMBIOS
  17. 处理:&ldquo;ORA-28002: the password will expire within 7 days&rdquo;的问题
  18. 如何简单实用hammer
  19. [转]jsPlumb插件做一个模仿viso的可拖拉流程图
  20. SAP PP中关于工单报工的小解

热门文章

  1. Java学习笔记三:Java的变量、常量、变量的类型及使用规则
  2. 初识python 函数(定义,传参,返回值)
  3. re模块(详解正则)
  4. shell重温---基础篇(连接数据库)
  5. oracle 数据被修改怎么修复?(闪回)
  6. CC3200在sl_Start函数处不断重启复位的原因解析
  7. mysql ON DUPLICATE KEY UPDATE、REPLACE INTO
  8. C++学习014函数值传递和地址传递
  9. Page Object 设计模式介绍
  10. FlaskWeb开发从入门到放弃(二)