Editorial for Tổng đoạn con
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
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:
Comments