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