#P6018. [Ynoi2010] Fusion tree

    ID: 4386 远端评测题 2000ms 500MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>树形结构2010O2优化字典树,Trie 树Ynoi

[Ynoi2010] Fusion tree

Description

魔法森林里有一颗大树,下面经常有小孩召开法。

大树可以看做一个有 nn 个节点,n1n - 1 条边的无向连通图。大树的每个节点都有若干瓶矿泉水,初始第 ii 个节点有 aia_i 瓶矿泉水。

麦杰斯住在大树顶端,有一天他想改造一下大树,方便他巨大多喝水之后可以垃圾分类矿泉水瓶。

麦杰斯喜欢二进制运算,所以他会有以下三种操作:

  1. 将树上与一个节点 xx 距离为 11 的节点上的矿泉水数量 +1+1。这里树上两点间的距离定义为从一点出发到另外一点的最短路径上边的条数。
  2. 在一个节点 xx 上喝掉 vv 瓶水。
  3. 询问树上与一个节点 xx 距离为 11 的所有节点上的矿泉水数量的异或和。

麦杰斯共有 mm 次操作,他希望你在每次 33 操作后告诉他答案。

Input Format

第一行两个正整数 n,mn,m,分别表示树的节点个数和麦杰斯的询问个数。

第二行到第 nn 行,每行两个整数表示有一条连接这两个节点的边。

n+1n + 1nn 个整数,第 ii 个整数表示初始第 ii 个节点上的矿泉水数量。

n+2n + 2 行到第 n+m+1n + m + 1 行,每行先读入一个整数 optopt 表示操作类型。

如果 opt=1opt = 133 ,接下来读入一个整数 xx 表示麦杰斯操作的节点标号。

否则接下来读入两个整数 x,vx, v 表示麦杰斯操作的节点标号和他喝的水的数量。

Output Format

对于每一个 33 操作,输出一行一个整数表示答案。

3 2
1 2
2 3
1 1 4
1 1
3 2
5

Hint

Idea:dangxingyu,Solution:dangxingyu,Code:dangxingyu,Data:dangxingyu

对于 30%30\% 的数据,满足 n103n \le 10^3m103m\le 10^3

对于 60%60\% 的数据,满足 n105n \le 10^5m105m \le 10^5

对于另外 10%10\% 的数据,存在一个点满足所有点到该节点的距离 1\le 1

对于 100%100\% 的数据,满足 1n5×1051\le n \le 5\times 10^51m5×1051\le m \le 5\times 10^50ai1050\le a_i \le 10^51xn1 \le x \le nopt{1,2,3}opt\in\{1,2,3\}

保证任意时刻每个节点的矿泉水数非负。

温馨提示:矿泉水瓶不是干垃圾也不是湿垃圾,而是可回收垃圾。