Nguồn: CSES
Gọi là tổng tiền tố (prefix sum):
. Sử dụng hàm này, ta có thể tính tổng của một đoạn con bất kỳ như sau:
Để tính số lượng đoạn con kết thúc tại vị trí và có tổng bằng
, ta cần tìm tất cả các giá trị
sao cho:
, điều này tương đương với:
Ta có thể lưu số lần xuất hiện của mỗi giá trị tổng tiền tố đã gặp trước đó. Khi xét vị trí , chỉ cần kiểm tra xem giá trị
đã xuất hiện bao nhiêu lần, từ đó nhanh chóng xác định được số lượng đoạn con cần tìm.
Có thể sử dụng cấu trúc map để đếm số lần xuất hiện của các tổng tiền tố.
Độ phức tạp:
Bình luận