Chúng tôi đang đưa ra một mảng với tất cả một [ i ] > 0 .
Bây giờ chúng ta cần phải tìm bao nhiêu tiền riêng biệt có thể được hình thành từ subarrays của nó (nơi một mảng con là một phạm vi tiếp giáp của mảng, ví dụ, đối với một số j , k , tổng là tổng của tất cả các các yếu tố của phân khúc). Ví dụ: nếu a = [ 1 , 2 , 1 ] , thì câu trả lời là 4: chúng ta có thể tạo thành 1 , 2 , 3 , 4 .
Tôi biết cách đếm số tiền riêng biệt trong thời gian .
Hơn nữa, tôi đã nhận ra điều này tương tự như bài toán cổ điển nơi chúng ta cần tìm số lượng các chuỗi con riêng biệt của một chuỗi. Tôi đã nghĩ đến khả năng xây dựng một mảng hậu tố và giải quyết nó theo cách tương tự (trong thời gian ). Nhưng tôi đã không thể tìm ra cách sửa đổi nó để làm việc ở đây. Ví dụ: nếu chúng ta sử dụng mảng hậu tố cho a = [ 1 , 2 , 1 ], chúng ta sẽ nhận được 5 trường hợp thay vì bốn trường hợp được chấp nhận. Điều này có thể làm điều này bằng cách sử dụng mảng hậu tố hay tôi đang nghĩ sai hướng?