Эта статья поможет вам изучить различные темы соревновательного программирования и начать работу с соревновательным программированием.

Наиболее распространенные темы, которые вам придется изучать при выполнении соревновательного программирования:

  • Фонды ДСА
  • Анализ временной и пространственной сложности
  • Рекурсия
  • Разделяй и властвуй
  • Базовый ДСА
  • Массивы
  • Связанный список
  • Куча
  • Очередь
  • Основные алгоритмы
  • Поиск и сортировка
  • Хеширование
  • 2 указателя
  • Возвращение
  • Математика для программирования
  • Основы (двоичное возведение в степень, алгоритм Евклида и т. д.)
  • Алгоритмы, связанные с простыми числами (Решето Эратосфена и т. д.)
  • Теория чисел (тотиент Эйлера и т. д.)
  • Модульная арифметика (обратный модуль, китайская теорема об остатках и т. д.)
  • Системы счисления (сбалансированная троичная, код Грея и т. д.)
  • Линейная алгебра
  • Геометрия
  • Комбинаторика
  • Численные методы
  • Разное (быстрое преобразование Фурье, многочлены и т. д.)
  • Промежуточные алгоритмы
  • Манипуляции со строками
  • Битовые манипуляции
  • Жадный
  • Промежуточные структуры данных
  • Деревья
  • Набор
  • карта
  • куча
  • Немного продвинутые алгоритмы
  • Динамическое программирование (DP)
  • График DSA
  • Расширенный динамический поиск
  • Теория игры
  • Расширенные строковые алгоритмы, попытки
  • Деревья сегментов, деревья Фенвика
  • Суффиксное дерево, суффиксный массив
  • Тяжелое легкое разложение
  • Непересекающийся набор, раскраска графа, сетевой поток
  • Разложение

Есть и другие такие концепции, которые вам, возможно, придется изучить. Подробнее об этом можно прочитать в разделе cp-algorithms. Вам нужно только сделать некоторые из них перед соревнованием. Вы можете изучить их со временем.

Давай будем друзьями! Подпишитесь на меня в Twitter и FaceBook и свяжитесь со мной в LinkedIn. Вы тоже можете посетить Мой сайт. Не забудьте также подписаться на меня здесь, на Medium, чтобы получать больше технофильского контента.