A120041.神树

提高+/省选-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

Yasya 在森林中散步时,偶然发现了一棵有 nn 个顶点的树。树是一种无环连通无向图。

在树旁边,女孩发现了一份古老的手稿,上面写有 mm 个查询。查询分为两种类型。

第一种查询由整数 yy 描述。树中每条边的权值都被替换为该边权值与整数 yy 的按位异或。

第二种查询由顶点 vv 和整数 xx 描述。Yasya 选择一个顶点 uu1un1 \le u \le nuvu \neq v),并在树中从 vvuu 心里画一条权值为 xx 的双向边。

然后 Yasya 在所得图中找到一个简单环,并计算该环上所有边权的按位异或值。她希望选择一个顶点 uu 使得计算得到的值最大。这个计算值就是该查询的答案。可以证明,在给定约束下,这样的环存在且唯一(与 uu 的选择无关)。如果 vvuu 之间已经存在边,则简单环为 vuvv \to u \to v

注意,第二种查询仅在心里进行,树本身不会发生任何改变。

请帮助 Yasya 回答所有查询。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的描述如下。

每个测试用例的第一行包含两个整数 nnmm2n21052 \le n \le 2 \cdot 10^51m21051 \le m \le 2 \cdot 10^5),分别表示树的顶点数和查询数。

接下来的 n1n-1 行,每行包含三个整数 vvuuww1v,un1 \le v, u \le n1w1091 \le w \le 10^9),表示树中的一条边及其权值。

保证给定的边集构成一棵树。

接下来的 mm 行,每行描述一个查询:

  • ^ yy1y1091 \le y \le 10^9):表示第一种类型的查询;
  • ? vv xx1vn1 \le v \le n1x1091 \le x \le 10^9):表示第二种类型的查询。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5mm 的总和也不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出所有第二种类型查询的答案。

输入输出样例

  • 输入#1

    2
    3 7
    1 2 1
    3 1 8
    ^ 5
    ? 2 9
    ^ 1
    ? 1 10
    ^ 6
    ? 3 1
    ? 2 9
    5 6
    1 2 777
    3 2 2812
    4 1 16
    5 3 1000000000
    ^ 4
    ? 3 123
    ? 5 1000000000
    ^ 1000000000
    ? 1 908070
    ? 2 1

    输出#1

    13 15 11 10 
    1000000127 2812 999756331 999999756
  • 输入#2

    3
    8 4
    8 6 3
    6 3 4
    2 5 4
    7 6 2
    7 1 10
    4 1 4
    5 1 2
    ^ 4
    ^ 7
    ? 7 8
    ? 4 10
    5 6
    3 1 4
    2 3 9
    4 3 6
    5 2 10
    ? 5 7
    ^ 1
    ^ 8
    ? 4 10
    ? 1 9
    ? 3 6
    4 2
    2 1 4
    4 3 5
    2 3 4
    ^ 13
    ? 1 10

    输出#2

    14 13 
    13 8 11 11 
    10
首页