[Buổi 21][Cây Fenwick (Binary Indexed Tree)][WS] Bài 1: Sổ biến động chỉ số
Sổ biến động chỉ số
Bối cảnh và bài toán
Một hệ thống theo dõi n chỉ số. Mỗi thao tác hoặc cộng thêm một lượng vào đúng một vị trí, hoặc yêu cầu tổng trên một đoạn nửa mở [l,r). Khối lượng thao tác lớn khiến việc cộng trực tiếp từng phần tử trong mỗi truy vấn không còn phù hợp.
Yêu cầu
Xử lý toàn bộ cập nhật và truy vấn theo thứ tự.
Input
- Dòng 1 chứa
n q. - Dòng 2 chứa
ngiá trị ban đầu, đánh số từ 0. qdòng tiếp theo:0 p x: cộngxvào vị tríp.1 l r: hỏi tổng trên[l,r).
Output
Với mỗi truy vấn loại 1, in tổng tương ứng.
Ràng buộc
1 <= n, q <= 5 * 10^50 <= a[i], x <= 10^90 <= p < n0 <= l < r <= n
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n, q <= 30 | 01–04 |
| S2 | 30% | n, q <= 5000 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
5 5
1 2 3 4 5
1 0 5
1 2 4
0 3 10
1 0 5
1 0 3
Output
15
7
25
6
Giải thích. Cập nhật làm vị trí 3 (đánh số từ 0) tăng thêm 10 trước hai truy vấn cuối.
Ví dụ 2
Input
3 4
0 0 0
0 1 5
1 0 2
0 0 2
1 0 3
Output
5
7
Giải thích. Sau hai lần cộng, mảng là [2,5,0].
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M07-B21-WS01 |
| Buổi | B21 |
| Loại bài | WORKSHOP |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 40 phút |
| Time limit | 3 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: Phỏng theo AtCoder Library Practice Contest – Fenwick Tree.
Comments