Size: a a a

2020 March 04

A

Andrey in pro.algorithms
Ну, как по мне самое простое это персистентное ДО
источник

A

Andrey in pro.algorithms
Оно имхо несложное и почти как обычное на указателях
источник

f

fashdrag (VladKov) in pro.algorithms
+ можно и без них
источник

K

Kotomord_λapki in pro.algorithms
Знаю решение с до (правда,  не персистентным
источник

A

Andrey in pro.algorithms
Какое?
источник

K

Kotomord_λapki in pro.algorithms
шаг 1 - дерево отрезков, во всех нелистьях - 0, в листьях - 1
шаг 2 - в ближайший общий предок двух листьев с одинаковым значением вписываем -1
шаг 3 - перестраиваем до так, что в каждом узле - сумма в поддереве
источник

K

Kotomord_λapki in pro.algorithms
и теперь просто считаем сумму
источник

K

Kotomord_λapki in pro.algorithms
на шаге 2 накапливаем, само собой
источник

A

Andrey in pro.algorithms
интересно
источник

p

pirat in pro.algorithms
Можно фенвиком в оффлайне
источник

DK

Dmitry Kozyrev in pro.algorithms
fashdrag (VladKov)
Как решить корневой декомпозицией задачу о различных числах на отрезке?
Запросы на изменение есть?
источник

DK

Dmitry Kozyrev in pro.algorithms
fashdrag (VladKov)
Хм, Окей
Ну мне кажется мо какое то сложное и излишнее для этой задачи
Алгоритмом МО получается чистые O(n sqrt(n))
Я на educational контесте на codeforces эту штуку алгоритмом Мо сдавал, быстро пишется и быстро сдается
Строчек там меньше, чем у персистентного до
источник

A

Andrey in pro.algorithms
Я затупил, видимо, насчет персистентого ДО, поскольку можно то же самое обычным сделать в оффлайне
источник

A

Andrey in pro.algorithms
Ну или фенвиком, как тут предложили
источник

f

fashdrag (VladKov) in pro.algorithms
Dmitry Kozyrev
Запросы на изменение есть?
Все в оффлайне
источник

f

fashdrag (VladKov) in pro.algorithms
Блин, а где про мо почитать?)
источник

DK

Dmitry Kozyrev in pro.algorithms
fashdrag (VladKov)
Все в оффлайне
Там простая идея:

Запомнить запросы Query{left, right, id}

Распределить их по блокам размера sqrt(n) по левой границе, внутри блоков посортить по правой: если блок с четным индексом, то в порядке возрастания правой границы, иначе в порядке убывания

Дальше методом двух указателей обработать все запросы
источник

DK

Dmitry Kozyrev in pro.algorithms
fashdrag (VladKov)
Блин, а где про мо почитать?)
источник

f

fashdrag (VladKov) in pro.algorithms
А можно ли как то это сделать просто корневой? Просто я пытался, но не получается
источник

DK

Dmitry Kozyrev in pro.algorithms
fashdrag (VladKov)
А можно ли как то это сделать просто корневой? Просто я пытался, но не получается
Можно, но выйдет сложнее и больше кодить
источник