[Buổi 6][Mảng cộng dồn & mảng hiệu][HW] Bài 1: Truy vấn tổng nhật ký tĩnh
Truy vấn tổng nhật ký tĩnh
Bối cảnh và bài toán
Một hệ thống lưu một chuỗi số liệu đã chốt và sẽ không còn thay đổi. Trong giai đoạn phân tích, có nhiều yêu cầu hỏi tổng số liệu trên một đoạn liên tiếp. Vì dữ liệu là tĩnh nhưng số truy vấn lớn, lặp lại phép cộng từ đầu cho mỗi yêu cầu sẽ gây lãng phí.
Yêu cầu
Trả lời tổng các phần tử trên mỗi đoạn [l,r] của mảng tĩnh.
Input
- Dòng 1:
n q. - Dòng 2:
nsố nguyêna[i]. qdòng tiếp theo: mỗi dòng chứal r.
Output
In tổng của từng đoạn theo thứ tự truy vấn.
Ràng buộc
1 <= n, q <= 2 * 10^5|a[i]| <= 10^91 <= l <= r <= n
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 30% | n, q ≤ 200 | 01–03 |
| S2 | 30% | n, q ≤ 10^5 | 04–06 |
| S3 | 40% | Không có ràng buộc bổ sung | 07–10 |
Ví dụ 1
Input
5 3
3 2 4 5 1
2 4
1 5
3 3
Output
11
15
4
Giải thích. Các tổng tương ứng là 2+4+5=11, tổng toàn mảng 15, và phần tử thứ ba 4.
Ví dụ 2
Input
4 2
-5 10 -2 7
1 2
2 4
Output
5
15
Giải thích. Prefix sum vẫn hoạt động bình thường khi dữ liệu có số âm.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M03-B06-HW01 |
| Buổi | B06 |
| Loại bài | HOMEWORK |
| Mức độ khó | Dễ (Easy) |
| Thời gian làm bài khuyến nghị | 25 phút |
| Time limit | 1 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++17 |
Nguồn: Phỏng theo CSES Problem Set — Static Range Sum Queries (Task 1646).
Tham khảo: https://cses.fi/problemset/task/1646/
Comments