GT and trees

Time Limit: 3000ms
Memory Limit: 524288KB
This problem will be judged on HDU. Original ID: 5508
64-bit integer IO format: %I64d      Java class name: Main

Description

You are given a tree with $N$ nodes and $Q$ questions.

All nodes have a value.Nodes on tree is numbered by $1~N$.

The questions have two types:

①$0$ $x$ $y$:Change node $x$'s value to $y$

②$1$ $x$ $y$ :you should output the maxinum times of some value that in the path from node $x$ to node $y$,

Input

In the first line there is a number $T$——The test numbers.

(In the finall test $T \leq 5$,and there are at most $2$ tests that $N>100$.)

For each test:

In the first line there are two numbers $N$ and $Q$.

In the next $N-1$ lines there are pairs of $(X,Y)$.It means there is a road between $x$ and $y$.

In the following line there are $N$ numbers $A_1..A_N$.$A_i$ means the value of node $i$ in the initial time.

In the last $Q$ lines there are three numbers.The meaning is above.

$1 \leq N,Q \leq 50000$,the value is in $[1,n]$.

You'd better print the enter in the last line when you hack others.

You'd better not print space in the last of each line when you hack others.

Output

For each question in each test,output the answer.

Sample Input

1
3 4
1 2
2 3
1 1 2
1 1 2
1 2 3
0 3 1
1 1 3

Sample Output

2
1
3

Source

Language: 
Theme: 
Share Code? 

Powered by NB231 | Current Style: .