Tính tổng giá trị các cây con

Xem dạng PDF

Bài toán

Cho một cây gốc có ~ n ~ đỉnh. Mỗi đỉnh có một giá trị ban đầu. Nhiệm vụ của bạn là xử lý hai loại truy vấn:

  1. Thay đổi giá trị của một đỉnh: Đặt giá trị của đỉnh ~ s ~ thành ~ x ~.
  2. Tính tổng giá trị trong cây con của một đỉnh: Tính tổng giá trị của tất cả các đỉnh trong cây con gốc tại ~ s ~.

Đầu vào
  • Dòng đầu tiên chứa hai số nguyên ~ n ~ và ~ q ~: số lượng đỉnh và số lượng truy vấn (~ 1 \leq n, q \leq 2 \cdot 10^5 ~).
  • Dòng thứ hai chứa ~ n ~ số nguyên ~ v_1, v_2, \ldots, v_n ~: giá trị ban đầu của các đỉnh.
  • Tiếp theo là ~ n-1 ~ dòng, mỗi dòng chứa hai số nguyên ~ a ~ và ~ b ~: biểu diễn một cạnh giữa hai đỉnh ~ a ~ và ~ b ~.
  • Cuối cùng là ~ q ~ dòng, mỗi dòng là một truy vấn thuộc một trong hai dạng:
    • 1 s x: đặt giá trị của đỉnh ~ s ~ thành ~ x ~.
    • 2 s: tính tổng giá trị của cây con gốc tại ~ s ~.

Đầu ra
  • Với mỗi truy vấn dạng 2 s, in ra tổng giá trị của cây con gốc tại ~ s ~.

Kiểm tra với ví dụ

Input:

5 3
4 2 5 2 1
1 2
1 3
3 4
3 5
2 3
1 3 10
2 3

Output:

8
10

Giải thích:

  • Truy vấn 2 3: Tổng cây con gốc tại ~ 3 ~ là ~ 5 + 2 + 1 = 8 ~.
  • Truy vấn 1 3 10: Thay đổi giá trị của ~ 3 ~ thành ~ 10 ~.
  • Truy vấn 2 3: Tổng cây con gốc tại ~ 3 ~ là ~ 10 + 2 + 1 = 13 ~.



Bình luận

Hãy đọc nội quy trước khi bình luận.

Không có bình luận tại thời điểm này.

Gửi bài giải
Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout
Nguồn bài: CSES
Dạng bài
CSES
Ngôn ngữ cho phép
C
C++
Java
Kotlin
Pascal
PyPy
Python
Scratch