QOJ.ac

QOJ

حد الوقت: 3 s حد الذاكرة: 512 MB مجموع النقاط: 100

#18816. Cây và Truy vấn 13

الإحصائيات

Có một cây có gốc gồm $N$ đỉnh. Các đỉnh được đánh số từ 1 đến $N$. Đỉnh $i$ có trọng số $A_i$. Ban đầu, đỉnh $r$ là gốc.

Viết chương trình xử lý các truy vấn sau:

  • 0 x y: Thay đổi trọng số của các đỉnh trong cây con của $x$ thành $y$.
  • 1 r: Đổi gốc của cây thành $r$.
  • 2 x y z: Thay đổi trọng số của các đỉnh trên đường đi giữa $x$ và $y$ thành $z$.
  • 3 x: In ra giá trị nhỏ nhất của trọng số các đỉnh trong cây con của $x$.
  • 4 x: In ra giá trị lớn nhất của trọng số các đỉnh trong cây con của $x$.
  • 5 x y: Cộng thêm $y$ vào trọng số của các đỉnh trong cây con của $x$.
  • 6 x y z: Cộng thêm $z$ vào trọng số của các đỉnh trên đường đi giữa $x$ và $y$.
  • 7 x y: In ra giá trị nhỏ nhất của trọng số các đỉnh trên đường đi giữa $x$ và $y$.
  • 8 x y: In ra giá trị lớn nhất của trọng số các đỉnh trên đường đi giữa $x$ và $y$.
  • 9 x y: Đổi cha của $x$ thành $y$. Nếu đỉnh $y$ nằm trong cây con của $x$ thì bỏ qua truy vấn này.
  • 10 x y: In ra tổng trọng số của các đỉnh trên đường đi giữa $x$ và $y$.
  • 11 x: In ra tổng trọng số của các đỉnh trong cây con của $x$.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên $N$, $M$ ($1 \le N, M \le 10^5$).

Sau đó $N-1$ dòng, mỗi dòng chứa hai số nguyên $u, v$ ($1 \le u, v \le N$) biểu diễn một cạnh nối hai đỉnh.

Sau đó $N$ dòng, dòng thứ $i$ chứa trọng số $A_i$ của đỉnh $i$.

Sau đó là một dòng chứa số nguyên $r$ — đỉnh gốc ban đầu ($1 \le r \le N$).

Sau đó $M$ dòng, mỗi dòng chứa một truy vấn như mô tả ở trên.

Tất cả các số nguyên trong dữ liệu vào đều biểu diễn được bằng kiểu int của C++. Trong quá trình xử lý truy vấn, tổng trọng số của tất cả các đỉnh không vượt quá phạm vi của kiểu int.

Dữ liệu ra

In ra kết quả của mỗi truy vấn (các truy vấn in ra kết quả) trên một dòng riêng biệt, theo đúng thứ tự xuất hiện trong dữ liệu vào.

Ví dụ

Đầu vào 1

5 5
2 1
3 1
4 1
5 2
4
1
4
1
2
1
10 2 3
3 1
7 3 4
6 3 3 2
9 5 1

Đầu ra 1

9
1
1

Đầu vào 2

10 12
2 1
3 2
4 2
5 3
6 4
7 5
8 2
9 4
10 9
791
868
505
658
860
623
393
717
410
173
4
0 8 800
1 4
2 8 2 103
3 9
4 4
5 7 304
6 8 8 410
7 10 8
8 1 8
9 6 9
10 2 3
11 5

Đầu ra 2

173
860
103
791
608
1557

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.