2025 ôn THT A - Buổi 24
CHUYÊN ĐỀ: Mảng cộng dồn
Tài liệu tham khảo
- VNOI: Tổng quan cấu trúc dữ liệu - Prefix Sum
- https://vnoi.info/wiki/algo/data-structures/prefix-sum-and-difference-array.md
- https://usaco.guide/silver/prefix-sums?lang=cpp
Ý tưởng
Bài toán: Cho mảng \(a\). Cần trả lời \(Q\) câu hỏi: Tổng đoạn liên tiếp từ vị trí \(l\) tới \(r\) trong \(a\) là bao nhiêu?
- Tính mảng \(S\) với \(S_i\) là tổng của \(i\) phần tử đầu tiên trong \(a\), tức \(a_1 + a_2 + a_3 + \dots + a_i\). Quy ước \(S_0 = 0\)
- Nếu có thông tin này, tổng của bất kì đoạn con \([l,r]\) nào cũng có thể tính nhanh được, bằng công thức: \(S_r - S_{l-1}\) (một phép tính, so với một vòng for)
Bình luận