Truy vấn cây con

Đề bài

Mô tả

Cho một cây gồm n đỉnh, gốc tại đỉnh 1. Mỗi đỉnh có một giá trị ban đầu. Xử lý q thao tác:

  • Loại 1: Cập nhật giá trị của một đỉnh.
  • Loại 2: Tính tổng giá trị tất cả các đỉnh trong cây con gốc tại một đỉnh.

Dữ liệu vào

Dòng đầu chứa hai số nguyên n và q.

Dòng thứ hai chứa n số nguyên là giá trị ban đầu của các đỉnh từ 1 đến n.

  • n−1 dòng tiếp theo, mỗi dòng chứa hai số nguyên a và b mô tả một cạnh của cây.

  • q dòng tiếp theo, mỗi dòng là một thao tác:

  • 1 s x — cập nhật giá trị đỉnh s thành x.
  • 2 s — tính tổng giá trị cây con gốc tại s.

Dữ liệu ra

Với mỗi thao tác loại 2, in ra tổng giá trị cây con.

Ràng buộc

  • 1≤n,q≤2·105
  • 1≤vi,x≤109
  • 1≤a,b,s≤n

Ví dụ

Input Output Giải thích
5 3
4 2 5 2 1
1 2
1 3
3 4
3 5
2 3
1 5 3
2 3
8
10
Cây con gốc 3 gồm đỉnh 3,4,5 có tổng 5+2+1=8. Sau khi cập nhật đỉnh 5 thành 3, tổng là 5+2+3=10.
3 3
1 2 3
1 2
2 3
2 1
1 3 10
2 2
6
12
Cây con gốc 1 gồm tất cả 3 đỉnh, tổng 1+2+3=6. Sau khi cập nhật đỉnh 3 thành 10, cây con gốc 2 gồm đỉnh 2,3 có tổng 2+10=12.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0