Кумулятивная сумма
Кумулятивная сумма — это сумма элементов последовательности, накопленная от её начала до каждой текущей позиции. Она позволяет быстро узнавать сумму любого начального участка массива и служит основой для префиксного максимума и префиксного минимума.
Массив кумулятивных сумм строят одним проходом по исходному массиву. После вычисления \(S_i\) сумма элементов с позиции \(1\) по \(i\) известна сразу. Если нумерация начинается с нуля, используют \(S[0]=0\) и формулу \(S[i+1]=S[i]+a[i]\).
Для массива \([3, -1, 4, 2]\) кумулятивные суммы равны \([3, 2, 6, 8]\). Например, сумма первых трёх элементов — \(S_3=6\). Чтобы найти сумму на произвольном отрезке, после этого изучают сумму на отрезке: при индексах \(l\le r\) она равна \(S_r-S_{l-1}\).
Кумулятивная сумма — не то же самое, что сумма всех элементов массива. Она хранит отдельный результат для каждой позиции. Кроме того, это не суффиксные суммы, которые считают элементы от текущей позиции до конца массива.
Какова кумулятивная сумма на третьей позиции для массива \([5, 2, -3, 1]\)?
Главное
- Кумулятивная сумма \(S_i\) равна сумме первых \(i\) элементов.
- Её строят рекуррентно: \(S_i=S_{i-1}+a_i\), начиная с \(S_0=0\).
- Префиксные суммы позволяют быстро вычислять суммы участков массива и используются в запросах к массиву.