Truy vấn đường đi từ gốc

Đề 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 trên đường đi từ gốc đến một đỉnh.

Dữ liệu vào

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

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

  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên ab 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ị trên đường đi từ gốc đến s.

Dữ liệu ra

Với mỗi thao tác loại 2, in ra tổng giá trị trên đường đi.

Ràng buộc

  • 1n,q2·105
  • 1vi,x109
  • 1a,b,sn

Ví dụ

Input Output Giải thích
5 3
4 2 5 2 1
1 2
1 3
3 4
3 5
2 4
1 3 2
2 4
11
8
Đường từ gốc đến đỉnh 4: 1→3→4, tổng 4+5+2=11. Sau khi cập nhật đỉnh 3 thành 2, tổng là 4+2+2=8.
3 3
1 3 2
1 2
2 3
2 3
1 2 5
2 3
6
8
Đường gốc→3: 1→2→3, tổng 1+3+2=6. Sau khi cập nhật đỉnh 2 thành 5, tổng 1+5+2=8.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0