Дерево отрезков — различия между версиями

Материал из Public ATP Wiki
Перейти к: навигация, поиск
(Общая идея)
(Общая идея)
Строка 3: Строка 3:
 
Очень похоже на sparse table - хотим предподсчитывать какие-то значения для отрезков, и обновлять их при изменении дерева.<br>
 
Очень похоже на sparse table - хотим предподсчитывать какие-то значения для отрезков, и обновлять их при изменении дерева.<br>
 
''Замечание: рассматриваем на примере задачи RMQ из конспекта про sparse table''
 
''Замечание: рассматриваем на примере задачи RMQ из конспекта про sparse table''
 +
 +
== Структура ==
 +
На нижнем уровне располагаются элементы массива, на уровень выше - узлы, в которых минимум из двух элементов, на уровень выше - минимум из соответствующих соседей предыдущего уровня и так далее. Рисунок для случая, когда количество элементов в массиве - степень двойки. (vis. 18:54)

Версия 14:02, 8 апреля 2020

Общая идея

Очень похоже на sparse table - хотим предподсчитывать какие-то значения для отрезков, и обновлять их при изменении дерева.
Замечание: рассматриваем на примере задачи RMQ из конспекта про sparse table

Структура

На нижнем уровне располагаются элементы массива, на уровень выше - узлы, в которых минимум из двух элементов, на уровень выше - минимум из соответствующих соседей предыдущего уровня и так далее. Рисунок для случая, когда количество элементов в массиве - степень двойки. (vis. 18:54)