3187 问题 G: 蓝桥杯2023年第十四届省赛真题-异或和

时间限制: 1s 内存限制: 128MB 提交: 306 解决: 26
题目描述

给一棵含有 n 个结点的有根树,根结点为 1 ,编号为 i 的点有点权 ai(i ∈ [1, n])。现在有两种操作,格式如下: 

• 1 x y 该操作表示将点 x 的点权改为 y 。 

• 2 x 该操作表示查询以结点 x 为根的子树内的所有点的点权和。 

现有长度为 m 的操作序列,请对于每个第二类操作给出正确的结果。 

输入

输入的第一行包含两个正整数 n, m ,用一个空格分隔。 

第二行包含 n 个整数 a1, a2, ..., an ,相邻整数之间使用一个空格分隔。

接下来 n − 1 行,每行包含两个正整数 ui , vi ,表示结点 ui 和 vi 之间有一条边。

接下来 m 行,每行包含一个操作。 

输出
输出若干行,每行对应一个查询操作的答案。
样例输入
4 5
1 2 3 4
1 2
1 3
2 4
2 1
1 1 0
2 1
2 2
样例输出
4
5
6
6
提示

对于 30% 的评测用例,n, m ≤ 1000;

对于所有评测用例,1 ≤ n, m ≤ 100000 ,0 ≤ ai , y ≤ 100000 ,1 ≤ ui , vi , x ≤ n。

比赛公告

1. 对于编程题目,不能使用诸如绘图、硬件操作或与操作系统相关的 API。

2. 所有依赖的模块(如 math)必须明确地在源文件中 import。

3. 只能使用 python 自带的模块,使用 pip 等安装的扩展模块无法使用。

4. 提交时,注意选择使用Python语言。


比赛结束依旧可以训练,请见题集2022年第十三届蓝桥杯大赛软件类省赛Python大学B组真题