VM 14 Bài 14 - Lại là cây khung

View as PDF

Submit solution

Points: 1.78 (partial)
Time limit: 7.5s
Memory limit: 512M
Input: stdin
Output: stdout

Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Bạn được cho một đồ thị liên thông có ~V~ đỉnh và ~V-1~ cạnh, với mỗi đỉnh sẽ có một trọng số tương ứng (các đỉnh khác nhau có thể có trọng số bằng nhau). Lần này, ~w~ có một số thao tác trên cây muốn nhờ bạn xử lí như sau:

  • ~1~ ~u~ ~v~: hỏi trọng số bé nhất trong số các đỉnh trên đường đi từ ~u~ đến ~v~.
  • ~2~ ~u~ ~v~: hỏi trọng số lớn nhất trong số các đỉnh trên đường đi từ ~u~ đến ~v~.
  • ~3~ ~u~ ~v~: đảo ngược trọng số các đỉnh trên đường đi từ ~u~ đến ~v~.

Giả sử các đỉnh trên đường đi từ ~u~ đến ~v~ lần lượt là: ~u~, ~u_{1}~, ~u_{2}~, ~u_{3}~, ~\dots~ ~u_{k}~, ~v~.

Trọng số tương ứng là: ~w_{u_1}~ ~w_{u_2}~ ~w_{u_3}~ ...~w_{u_k}~ ~w_{v}~.

Thì sau khi thực hiện thao tác loại ~3~ trọng số các đỉnh sẽ trở thành ~w_{v}~ ~w_{u_k}~ ...~w_{u_2}~ ~w_{u_1}~ ~w_{u}~.

Input

Dòng đầu tiên chứa ~2~ số tự nhiên ~V~ và ~Q~ - số đỉnh của đồ thị và số truy vấn.

Dòng tiếp theo chứa ~V~ số tự nhiên là trọng số của các đỉnh ~1~, ~2~, ~3~, ..., ~V~.

~V-1~ dòng tiếp theo mỗi dòng chứa ~2~ số tự nhiên ~u~ ~v~ - có cạnh nối từ ~u~ đến ~v~.

~Q~ dòng tiếp theo mỗi dòng là một trong ~3~ loại truy vấn nêu trên.

Output

Với mỗi truy vấn loại 1 và 2 in ra một dòng tương ứng chứa kết quả truy vấn đó.

Giới hạn

  • Trong tất cả các test: ~V~, ~Q \leq 10^{5}~, trọng số các đỉnh ~\leq 10^{9}~.
  • Trong 20% các test: ~V~, ~Q \leq 10^{3}~.
  • Trong 40% các test tiếp theo: số lượng truy vấn loại "3 ~u~ ~v~" ~\leq 100~.

Sample Input

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

Sample Output

5
2
2

Comments

Please read the guidelines before commenting.


There are no comments at the moment.