Изменения

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

Список с пропусками

93 байта добавлено, 11:44, 24 марта 2019
Нахождение всех интервалов, покрывающих данную точку
}}
Для решения данной задачи воспользуемся списком с пропусками. Когда нам приходит запрос первого типа, то мы просто добавляем числа <tex>L</tex> и <tex>R</tex> в список с пропусками (если какое-то из чисел уже было добавлено, то второй раз мы его не добавляем), а также идём с самого верхнего уровня и до нижнего и если два элемента на каком-либо уровне находятся между <tex>L</tex> и <tex>R</tex>, то прибавляем <tex>1</tex> к отрезкуи переходим к следующему элементу на том же уровне, иначе спускаемся вниз. Когда нам приходит запрос второго типа <tex>-</tex> на каждом уровне находим такие два элемента, что <tex>x</tex> лежит между ними, и к ответу прибавляем значение на данном отрезке. Итого оба запросы мы выполняем за <tex>O(\log{n})</tex>.
==См. также==
390
правок

Навигация