[Buổi 21][Cây Fenwick (Binary Indexed Tree)][WS] Bài 1: Sổ biến động chỉ số


LÀM BÀI

Points: 100
Time limit: 3.0s
Memory limit: 256M

Author:
Problem types

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 n giá trị ban đầu, đánh số từ 0.
  • q dòng tiếp theo:
    • 0 p x: cộng x và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^5
  • 0 <= a[i], x <= 10^9
  • 0 <= p < n
  • 0 <= 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

There are no comments at the moment.

Zalo