Изменения

Перейти к: навигация, поиск

Дерево Фенвика

43 байта добавлено, 16:00, 5 июня 2015
Нет описания правки
i = next(i);
Часто можно встретить задачу, где требуется заменить значение элемента <tex>a_i</tex> на <tex>tx</tex>. Заметим, что если вычислить разность <tex>tx</tex> и <tex>a_{i}</tex>, то можно свести эту задачу к операции прибавления <tex>d</tex> к <tex>a_i</tex>.
'''function''' set(i, tx): d = t x - a[i]
modify(i, d)
==Построение дерева==
Будем строить дерево Фенвика исходя из его описания. Но можно быстрее, если делать set использовать функцию modify для каждого элемента массива <tex>A</tex>. Тогда мы получим время работы <tex>O(n \log {n})</tex>.
'''function''' build()
'''for''' i = 0 '''to''' N - 1
setmodify(i, a[i])
== Запрос получения значения функции на префиксе ==
146
правок

Навигация