开始 2023-01-18 11:53:07

寒假模拟1复现赛

结束 2023-01-22 00:00:00
Contest is over.
当前 2024-05-04 01:00:27

D. 小 P 的树

描述

小 P 有一棵大小为 n 的树,这棵树一共有 n − 1 条无向边,树上的每一条边 都有一个权值 t。 定义一条简单路径的价值为该路径上所有边的权值的异或值。 小 P 对这棵数很感兴趣,因此他会针对这棵树作出以下的两种询问:。

  1. 给定一个点 x,询问以 x 为端点的所有简单路径的最大价值。
  2. 给定一个点 x,询问以 x 为端点的所有简单路径的价值之和。 小 P 觉得若只是这样那还远远不够有趣,因此在询问的过程中他可能会随时 修改某一条边的权值。 现在请你对小 P 的所有询问,给出正确的答案。

输入

从文件 tree.in 中读入数据。 第一行一个整数 n, m,分别表示树的大小和操作与询问的总数。 接下来一共 n − 1 行,第 i 行表示编号为 i 的边的具体信息,共三个整数 xi , yi , ti,表示第 i 个条边为 (xi , yi),权值为 ti。 接下来一共 m 行,每一行表示一个询问或修改操作。 每一行的第一个整数为 op。 若 op = 1,则表示这是一个询问操作,后跟一个整数 x,询问以 x 为端点的 所有简单路径的最大价值。 若 op = 2,则表示这是一个询问操作,后跟一个整数 x,询问以 x 为端点的 所有简单路径的价值之和。 若 op = 3,则表示这是一个修改操作,后跟两个整数 v, w,表示将编号为 v 的边的权值修改为 w。

输出

对于每一个询问操作,输出一行一个整数表示相应的答案。

样例

输入

6 6
1 2 8
1 3 4
2 4 7
3 5 7
5 6 13
1 2
3 3 7
1 5
3 2 11
3 4 5
2 4

输出

12
13
39

输入

8 8
4 2 9
2 5 7
1 2 9
1 3 15
3 6 14
5 7 5
5 8 9
2 8
1 5
3 6 2
1 1
2 6
3 4 2
2 8
1 3

输出

63
15
15
58
64
14

Submit

登录

注册
时间限制 3 秒
内存限制 512 MB
提交