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