⏱️
Сложность алгоритмов
Время и память, оценка решения, ограничения задачи и выбор подхода, который пройдёт тесты.
🧱
Структуры данных
Массивы, строки, стеки, очереди, множества, словари, кучи, деревья и способы их применения.
🔍
Поиск и сортировки
Двоичный поиск, сортировки, два указателя, скользящее окно, префиксные суммы и жадные алгоритмы.
🧮
Комбинаторика и теория чисел
Делимость, простые числа, НОД, модульная арифметика, подсчёт вариантов и математические наблюдения.
🧠
Динамическое программирование
Состояния, переходы, базовые случаи, восстановление ответа и оптимизация памяти.
🕸️
Графовые алгоритмы
Обходы, компоненты связности, кратчайшие пути, топологическая сортировка и деревья.
🐍
Python для соревнований
Быстрый ввод-вывод, стандартные структуры, библиотеки и написание компактного, но понятного решения.
➕
C++ для олимпиад
STL, векторы, строки, пары, множества, отображения, очереди с приоритетом и контроль производительности.
🧪
Тестирование решения
Граничные случаи, контрпримеры, генерация тестов, чтение вердиктов и поиск логической ошибки.
🏁
Тактика соревнования
Чтение набора задач, оценка сложности, порядок решения, управление временем и работа после неудачной посылки.
📚
Разборы и архив задач
Возвращаемся к задачам после тура, сравниваем решения и формируем личную базу алгоритмических приёмов.
📈
Индивидуальный план подготовки
Темы и уровень задач корректируются по результатам ученика, соревнований и текущим слабым местам.