Всем привет!
Сейчас решал задачу и тут понадобилось реализовать копирование декартова дерева, в частности у меня есть дерево T и его нужно скопировать и смержить в конец двух других деревьев. Возможно ли это сделать без обхода всего дерева?
UPD Пишу на указателях.
Чтобы делать это достаточно эффективно, нужно персистентное декартово дерево. Персистентная структура данных -- это такая, в которой хранятся все предыдущие состояния. При изменении любой вершины она копируется и изменяется только копия, а оригинальная вершина остаётся в прежнем состоянии. Таким образом, копирование -- просто копирование указателя.
Почитать можно, например, тут; наверняка на КФ можно ещё чего-то нарыть.
Спасибо.
Узнал, что такое персистентное ДО и сдал задачу I "Откат" с ВКОШП 2010.
Читаю статью на хабре http://habrahabr.ru/post/240519/.
Если ты такой умный, то почему такой синий?
А если ты такой глупый, почему такой оранжевый?
Я, будучи синим, сдавал потоки, а будучи фиолетовым — heavy-light decomposition=) Впрочем, сейчас я опять фиолетовый.
Я думаю, что CFшные задачи немного отличаются от олимпиадных. Всё-таки олимпиадная задача, это задача на которую выделяется порядка ~1.5-2 часов, а не та которую надо решить за ~20-30 минут ещё наравне с четырьмя аналогичными.
А почему заминусовали? АСМ-ные задачи действительно ведь отличаются от IOI-стайла — в них чаще нужна смекалочка, а не структуры и данных и хитрые алгоритмы.
Кто-то (Darooha) сам придумал HLD задолго до того, как стать фиолетовым ;)
Классная ава! Можешь мне такую же сделать?
Конечно могу!
http://lmgtfy.com/?q=golden+VIP+%D0%92%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5 Первое изображение в Images.