1. Избавление от амортизации 1.1 Вектор, решаем проблему, когда уже надо 1.2 Вектор, решаем проблему заранее 1.3 Хеш-таблица (открытая адресация, когда уже надо) 1.4 Очередь с min 2. Куча 2.1 Пример про задачки 2.2 бинарная куча, инварианты, хранение, etc 2.3 getMin 2.4 add, siftUp 2.5 extMin, siftDown 2.6 DecreaseKey, ссылочки 2.7 delete 2.8 make_heap: сортировочка, через siftup, через siftDown 2.9 [в следующий раз] сортировка кучей 3. Трюки со структурами данных 3.1 Find |-> Delete (хеш-таблица) 3.2 Add |-> Merge (приливания) 3.3 [?] Merge |-> Add (создаём новую стуктурку и merge) 3.4 Build(merge) |-> Add 3.4.1 решаем add(x), count(L, R), оффлайн понятно 3.4.2 через корневую 3.4.3 через разложение на степени двойки 4. Аллокация 4.1 Стековая 4.2 Pool-based 4.3 Через кучу 4.4 накачиваем Pool-based чтобы связный список на той же памяти был