Для кого
Уверенное знание C++ Хорошие знания структур данных: дерево отрезков, декартово дерево, дерево фенвика Динамическое программирование: НВП, НОП, динамика на дереве, динамика по подмножествам, простые оптимизации Структуры данных на деревьях: HLD, центроиды, переливание меньшего к большему Графы: DFS, BFS, алгоритм Дейкстры, алгоритмы Прима и Крускала, поиск мостов и точек сочленения, поиск компонент сильной связности, алгоритм Куна Строки: префикс функция, N-функция, бор Теория чисел: деление по модулю, алгоритм Евклида, решето Эратосфена Геометрия: представление вектора, основные векторные операции, поиск пересечения прямых, выпуклая оболочка |
Примеры тем
Нетривиальные алгоритмы и задачи теории чисел
Декомпозиции деревьев: centroid, heavy-light, ladder Задачи на графах: 2-SAT, паросочетания, остовы и их применение в задачах Продвинутые структуры данных: неявные деревья отрезков, двумерные структуры, персистентные структуры, разные — структуры и алгоритмы дня нахождения минимумов Строковые структуры данных: Ахо-Корасик, суффиксный массив, суффиксный автомат Алгоритмы поиска потоков в сетях Продвинутые геометрические алгоритмы: вращающийся scanline, пересечение полуплоскостей, диаграмма Вороного, триангуляция Делоне Splay-деревья, link-cut Алгоритмы поиска минимальных глобальных разрезов Нетривиальные алгоритмы на графах: венгерский алгоритм, алгоритм двух китайцев, дерево доминаторов Матроиды Алгоритмы во внешней памяти |
|
Формат занятий |
||
Преподаватели |