becks
@becks

Можно ли построить дерево отрезков (segment tree) по нескольким запросам?

Добрый день!

Разбираюсь с Segment Tree и смотрю типичные задачи, которые данная структура позволяет эффективно решать на запрашиваемом отрезке. Типичная задача - нахождение суммы на отрезке или поиск минимума/максимума, вроде всё логично и понятно. Но у меня возник вопрос, а можно ли применять этот тип данных, если меняются не только границы отрезка, но и атрибут какой-нибудь операции? О чем идет речь. Допустим, нужно найти на отрезке число элементов делящихся без остатка на x из набора X. Т.е. мы построили дерево отрезков, а потом получаем на вход несколько запросов, каждый из которых содержит границы отрезка и делитель, и, соответственно, для каждого такого запроса мы должны дать ответ. Нужно ли будет перестраивать дерево?
Если подкинете ссылочку, где можно детальнее почитать про такого рода особенности, буду благодарен.
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 1
sgjurano
@sgjurano
Разработчик
У вас в каждой вершине лежит информация о применении к отвечающему ей сегменту заранее определенной операции, если вы изменяете операцию и при этом не делали предпросчет заранее, то вам придется пересчитать значения во всех вершинах, что равносильно перестраиванию дерева с нуля.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы