Изменения

Перейти к: навигация, поиск
push
=== push ===
Так называемое "проталкиваниеПроталкивание" несогласованности детям. Необходимо выполнять как только идет рекурсивный запуск от текущей вершины к её детям. Нужно это для того, чтобы в детях в момент обработки были корректные данные.
void push(int node) {
tree[2 * node + 2].d = tree[2 * node + 2].d <tex>\odot</tex> tree[node].d;
tree[node].d = <tex>\perp</tex>; // Нейтральный элемент
}  
=== update ===
Процедура обновления на отрезке. Данная процедура выполняет разбиение текущего отрезка на подотрезки и обновление в них несогласованности. Очень важно выполнить push как только идет рекурсивный вызов от детей, чтобы избежать некорректной обработки в детях. И так как значение в детях могло измениться, то необходимо выполнить обновление ответа по операций <tex>\oplus</tex> на текущем отрезке.
333
правки

Навигация