神经末梢(Nerve Ending),为神经纤维的末端部分,分布在各种器官和组织内。
任何神经网络都可以被表示为一张图,神经元之间通过神经纤维连接彼此。
现在,科学家要挑战神经末梢的信息模拟!
作为神经网络的末尾,神经末梢是包含 $n$ 个神经元,$n-1$ 条神经纤维的连通图,每个神经元有上一个整数 $a_i$ 表示该神经元上的信息。
科学家会对模拟系统进行一系列操作,格式如下:
1 p 神经元 $p$ 和其直接相连的神经元上的信息被环境干扰,变为$a_i$&$(a_i -1)$,其中 & 为二进制按位 &。
2 p x 修改神经元 $p$ 和其直接相连神经元上的信息为 $x$。
3 p 查询神经元 $p$ 和其直接相连神经元的信息之和。
你能帮科学家完成这个挑战吗?
输入第一行包含两个数字 $n,m$,分别代表神经元数和操作数$1≤n,m≤2*10^5$。
接下来一行包含 $n$ 个数字,代表每个神经元的信息 $a_p ,1≤a_p≤10^6$;
接下来 $n-1$ 行,每行两个数字 $u_i,v_i$,分别代表一条神经纤维的两个端点,保证端点不相同,且无重复输入。
接下来 $m$ 行,每行代表一次操作,3 种操作的格式如上所述,其中$1≤x≤10^6$。
对于每次操作 3,输出一行,包含一个整数,即为所求答案。
4 3 1 2 3 4 1 2 2 3 3 4 1 2 2 1 3 3 2
8