Кружок 102 — курс олимпиадного программирования
Главная → Алгоритмы и структуры данных

Алгоритмы и структуры данных: маршрут обучения

Чтобы решать олимпиадные задачи, нужен маршрут — от простого к сложному. Вот как выстроены 15 уровней курса, от сортировок до потоков.

Зачем нужен маршрут

Темы в программировании зависят друг от друга. Динамическое программирование трудно понять без рекурсии, а графовые алгоритмы — без обходов. Поэтому важен порядок: тогда сложное даётся естественно.

Маршрут по уровням

  1. Уровень 1 — основы Python.
  2. Уровень 2 — C++ и STL.
  3. Уровни 3–4 — математика, сортировки, префиксные суммы, два указателя, бинарный поиск.
  4. Уровни 5–7 — жадные алгоритмы, рекурсия и перебор, обходы графов (BFS, DFS).
  5. Уровни 8–10 — динамическое программирование, взвешенные графы, дерево отрезков, дерево Фенвика, СНМ.
  6. Уровни 11–15 — строковые алгоритмы (префикс-функция, z-функция, бор, Ахо-Корасик), суффиксный массив, потоки и другие продвинутые темы.

Как это отрабатывается

Каждая тема — это теория с анимациями, задачи по возрастанию сложности и автоматическая проверка на Codeforces, Timus и Informatics. Часть решений разбирает преподаватель.

Частые вопросы

Можно ли перескакивать темы?

Лучше идти по порядку: темы опираются на предыдущие.

Нужна ли сильная математика?

Достаточно базовой школьной, нужное объясняется по ходу.

Где решать задачи?

На платформе, с отправкой на Codeforces, Timus и Informatics.

Начните заниматься на платформе «Кружок 102»: теория, задачи и проверка решений.
Перейти на course.kruzhok102.com