Cây chỉ số nhị phân Fenwick Tree cập nhật điểm và tính tổng đoạn
Hệ thống Gateway của AI Empire Academy phân bổ tài nguyên cho N tài khoản người dùng được đánh số từ 1 đến N (1 ≤ N ≤ 105). Ban đầu, mỗi tài khoản i đã sử dụng một lượng token…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: bitwise operators, std vector, fast io.
Nội dung đề bài
Mục tiêu kiến thức
- Cài đặt cấu trúc dữ liệu Cây chỉ số nhị phân (Binary Indexed Tree - BIT / Fenwick Tree).
- Áp dụng thao tác bitwise
i += (i & -i)vài -= (i & -i)để cập nhật và tính tiền tố trong O(log N). - Hỗ trợ thao tác cập nhật điểm (Point Update) và truy vấn tổng đoạn con (Range Sum Query) với N, Q ≤ 105.
- Quản lý tổng lớn bằng kiểu 64-bit
long long.
Mô tả bài toán
Hệ thống Gateway của AI Empire Academy phân bổ tài nguyên cho N tài khoản người dùng được đánh số từ 1 đến N (1 ≤ N ≤ 105). Ban đầu, mỗi tài khoản i đã sử dụng một lượng token là Ai (0 ≤ Ai ≤ 109).
Hệ thống cần xử lý Q yêu cầu thời gian thực (1 ≤ Q ≤ 105) thuộc 2 loại:
1 i v: Tài khoản i vừa sử dụng thêm v token (1 ≤ i ≤ N, 0 ≤ v ≤ 109). Giá trị token của tài khoản i được tăng thêm v: Ai = Ai + v.2 L R: Thống kê tổng số lượng token đã sử dụng của tất cả các tài khoản từ L đến R: ∑k=LR Ak (1 ≤ L ≤ R ≤ N).
Hãy xử lý và in ra kết quả cho tất cả các truy vấn loại 2.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng 1: Gồm 2 số nguyên N và Q (1 ≤ N, Q ≤ 105).
- Dòng 2: Gồm N số nguyên không âm A1, A2, …, AN (0 ≤ Ai ≤ 109).
- Q dòng tiếp theo: Mỗi dòng đại diện cho một yêu cầu:
1 i vhoặc2 L R.
Output
Với mỗi yêu cầu loại 2 L R, in ra tổng số lượng token tương ứng trên một dòng riêng biệt.
Ràng buộc
- 1 ≤ N, Q ≤ 105.
- 0 ≤ Ai, v ≤ 109.
- 1 ≤ i ≤ N.
- 1 ≤ L ≤ R ≤ N.
- Thời gian chạy: 1000ms.
- Bộ nhớ tối đa: 256MB.
Ví dụ 1
Input
5 4
1 3 5 7 9
2 1 3
1 2 4
2 1 3
2 2 5Output
9
13
28Giải thích
- Dãy ban đầu: [1, 3, 5, 7, 9].
2 1 3: Tổng từ 1 đến 3 là 1 + 3 + 5 = 9.1 2 4: Tài khoản 2 cộng thêm 4 token → A2 = 3 + 4 = 7. Dãy trở thành: [1, 7, 5, 7, 9].2 1 3: Tổng mới từ 1 đến 3 là 1 + 7 + 5 = 13.2 2 5: Tổng từ 2 đến 5 là 7 + 5 + 7 + 9 = 28.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
