Вот у меня вот такие вот задачи.
1) Допустим, реализована структура данных set, позволяющая бысто совершать операции insetrt и count, но не erase. Как можно реализовать новую структуру данных, которая умела бы выполнять все три операции ( на основе уже имеющихся) с сохранением асимптотики
.
Вот моя идея:
Храним в нашей структуре данных сет и любое дерево поиска:
1)
2)
, where
, if
Теперь Функции
:
Ищем элемент в
, если там есть делаем
, если нет инсертим
туда value, указатель на true
:
Мы ищем элемент в
, если он есть делаем
, делаем
в
сет
:
Мы ищем элемент в
, если он там есть, смотрим на
и возвращаем
нужное значение (if false then return 1 else 0), если его там нет возвращаем 0.
Но мне кажется, что можно решить более просто используя два set'а.
Вторая задача.
Необходимо во взвешенном дереве, то есть на каждом ребре написано некоторе целое число. Нужно найти наибольший простой путь с нулевой суммой с асимптотикой
.
Эту задачу я не понимаю как решать за быстро. Мне бы пригодились любые ваши подсказки.