Изменения

Перейти к: навигация, поиск
Алгоритм
Будем рассматривать запрос на примере задачи RSQ(запрос суммы)
[[Файл:123.jpg|right|380px|thumb|Пример дерева отрезков для вычисления сумм]]
Обработка запроса суммы представляет собой рекурсивную функцию, которая всякий раз вызывает себя либо от левого сына, либо от правого (Если запрашиваемый отрезок не изменяя границы запроса в обоих случаях), либо от обоих сразу (при этом деля наш запрос на два соответствующих подзапроса)пересекается с рассматриваемым отрезком возвращаем нейтральный элемент. Однако рекурсивные вызовы будем делать не всегда: если текущий запрос совпал с границами отрезка Если запрашиваемый отрезок является подмножеством рассматриваемого возвращаем значение в текущей вершине дерева отрезков.Иначе считаем для подотрезков рекурсивно, то в качестве ответа будем возвращать предвычисленное комбинируем ответ и возвращаем значение суммы на этом отрезке, записанное в дереве отрезков.
==Реализация==
Анонимный участник

Навигация