
Course 3
Move beyond the basics and learn how to solve more technical and structured problems. This course includes 2D dynamic programming, DSU, MST, combinatorics, geometry, heaps, arbitrary-precision arithmetic, and useful optimization techniques.

Move beyond the basics and learn how to solve more technical and structured problems. This course includes 2D dynamic programming, DSU, MST, combinatorics, geometry, heaps, arbitrary-precision arithmetic, and useful optimization techniques.
LCS/LIS, Knapsack
Наибольшая общая подпоследовательность (НОП)
Наибольшая возрастающая подпоследовательность (НВП)
Наибольшая возрастающая подпоследовательность (НВП) за $O(N \log N)$
Задача рюкзака
Lazy DP
Disjoint-Set Union
Система непересекающихся множеств
Prim, Kruskal, Boruvka
Минимальные и максимальные остовные деревья
Kruskal's Algorithm
Алгоритм Прима
Combinatorics
Звезды и столбцы
Принцип включения-исключения
Geometry
Нахождение площади простого многоугольника
Arbitrary-Precision Arithmetic
Длинная Арифметика
Data structures for keeping minimum
Stack with Minimum
Queue with Minimum
Deque with Minimum
Heap
Двоичная Куча
Алгоритм Борувки