Truy vấn nặng
Xem dưới dạng PDF
Gửi bài giải
Điểm:
100
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Tý có một hệ thống kho hàng trực tuyến có \(N\) kho trung tâm được tổ chức dạng cây (kho \(1\) là trung tâm chính). Các kho được đánh số từ \(1\) đến \(N\) và có \(N-1\) tuyến vận chuyển. Mỗi kho \(i\) có giá trị tồn kho \(s_i\). Hệ thống nhận \(Q\) thao tác:
1 u v val: Cộng thêm \(val\) vào giá trị tồn kho của tất cả các kho nằm trên tuyến đường từ kho \(u\) đến kho \(v\).2 u v: Tính tổng giá trị tồn kho hiện có trên tuyến đường từ kho \(u\) đến kho \(v\).
Hãy xây dựng chương trình xử lý hiệu quả.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
- Dòng thứ hai chứa \(N\) số nguyên \(s_1, s_2, \dots, s_N\) (\(0 \le s_i \le 10^9\)).
- \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số \(u, v\) mô tả tuyến vận chuyển.
- \(Q\) dòng tiếp theo, mỗi dòng mô tả một thao tác.
Định dạng đầu ra
- Với mỗi thao tác loại
2, in ra tổng giá trị tồn kho trên một dòng.
Ví dụ
Input:
5 4
1 2 3 4 5
1 2
2 3
2 4
1 5
1 3 4 10
2 3 5
1 2 5 3
2 1 5
Output:
7
15
Ràng buộc
| Subtask | Điểm | Giới hạn |
|---|---|---|
| 1 | 20 | \(N \le 10^3\) |
| 2 | 30 | \(N \le 10^4\) |
| 3 | 50 | \(N \le 10^5\) |
Nhận xét