前置定义:(牛逼值)
给定一个长度为n的数组:,该数组的牛逼值为:
。其中
表示异或运算,与传统异或运算定义一致。
例如长度为3的数组:,那么他的牛逼值为:
=10。
题面:
lt是一个三维生物,他掌管着二维世界的运行规律,某一天他发现一颗有个节点的无根树,该树只有点权,没有边权,现在他要进行
次操作,每次进行以下两种操作之一:
单组输入。
第一行输入
n,m,代表树的节点个数,以及进行的操作次数,保证
。
第二行输入
n个正整数,代表每个节点的点权,保证输入值
。
接下来
n-1行,每行两个正整数
u,v,表示节点
与节点
之间有一条双向边,保证输入规模为一颗树,且
1<=u,v<=n且u!=v。
接下来m
行,每行三个数字id,u,v
,保证1<=id<=2
。
若id=1,则表示是第一种操作,此时
,将节点u
的点权修改为
v。
若id=2,则表示是第二种操作1<=u,v<=n,此时
,你需要输出该次询问结果。
对于每个第二种操作输出一行,表示该次询问的结果。保证64位整数可以存下结果