Series ℍ𝔾𝔹ℂ𝕡𝕡_'s - 2026 - Contest #3 - The Last Legacy

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 6.0s Bộ nhớ: 1G Input: last.inp Output: last.out

PhuocThien, uou, p2o2HuaGiaBaoPrototype đang đứng trước một mạng lưới gồm \(n\) phòng và \(n-1\) hành lang, trong đó giữa hai phòng bất kỳ luôn có đúng một đường đi, vì vậy toàn bộ công trình tạo thành một cây có trọng số. Ban đầu mọi phòng đều có năng lượng \(0\).

\(q\) thao tác cần xử lý:

  • Thao tác 1 x y: Gán lại năng lượng của phòng \(x\) thành \(y\).
  • Thao tác 2 x: Tính tổng ảnh hưởng mà phòng \(x\) nhận được từ toàn bộ hệ thống, tức là:
    \[ \sum_{i=1}^{n} a_i \cdot dist(x,i) \]

Với mỗi truy vấn loại 2 x, hãy in ra đáp án tương ứng. Dữ liệu bảo đảm cây liên thông và không có chu trình. Mỗi hành lang có độ dài dương. Các truy vấn cập nhật luôn hợp lệ. Mạng lưới này được Prototype thiết kế để kiểm tra khả năng phản ứng của hệ thống trong thời gian thực. PhuocThien phụ trách phần bản đồ, uou phụ trách phần tín hiệu, còn Prototypep2o2HuaGiaBao quan sát toàn bộ kết quả. Đây là một bài cần xử lý nhanh vì số lượng thao tác rất lớn. Hãy chú ý rằng tổng giá trị có thể vượt khỏi phạm vi 32-bit.

Input

  • Dòng đầu chứa hai số nguyên \(n, q\) (\(1 \le n, q \le 10^6\)).
  • \(n-1\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u, v, w\) (\(1 \le u, v \le n\)\(1 \le w \le 10^6\)).
  • \(q+1\) dòng sau, mỗi dòng là một thao tác 1 x y hoặc 2 x.
  • Ban đầu mọi giá trị \(a_i\) đều bằng \(0\).

Output

  • Với mỗi truy vấn loại 2 x, in ra một dòng là giá trị \(\sum_{i=1}^{n} a_i \cdot dist(x,i)\).

Example

Test 1

Input
5 7
1 2 3
1 3 2
2 4 4
2 5 1
1 2 3
1 4 5
2 1
1 2 0
2 5
1 3 2
2 4
2 3
Output
44
25
18
45
Note

Ban đầu tất cả các phòng đều có năng lượng \(0\).
Sau hai thao tác đầu tiên, hệ thống có:

  • \(a_2 = 3\).
  • \(a_4 = 5\).

Khi truy vấn 2 1, ta cần tính tổng ảnh hưởng tại phòng \(1\). Khoảng cách từ phòng \(1\) đến phòng \(2\)\(3\), và từ phòng \(1\) đến phòng \(4\)\(7\). Vì vậy kết quả là \(3 \cdot 3 + 5 \cdot 7 = 44\).

Tiếp theo, thao tác 1 2 0 làm cho \(a_2 = 0\), nên chỉ còn phòng \(4\) có năng lượng khác \(0\). Khi truy vấn 2 5, khoảng cách từ phòng \(5\) đến phòng \(4\)\(5\), nên kết quả là \(5 \cdot 5 = 25\).

Sau đó thao tác 1 3 2 đặt \(a_3 = 2\). Khi truy vấn 2 4, ta có:

  • \(dist(4,3) = 9\).
  • \(dist(4,4) = 0\).
    Do đó kết quả là \(2 \cdot 9 + 5 \cdot 0 = 18\).

Cuối cùng, khi truy vấn 2 3, ta có:

  • \(dist(3,3) = 0\).
  • \(dist(3,4) = 9\).
    Nên kết quả là \(2 \cdot 0 + 5 \cdot 9 = 45\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.