Спортивное программирование — это соревнования, где программисты решают алгоритмические задачи при помощи кода. habr.com Главная цель участников на большинстве мероприятий — решение задач в условиях ограниченного времени с минимальным количеством ошибок и неправильных попыток. habr.com
Как правило, участникам нужно решить 4–10 алгоритмических задач в течение пяти часов. habr.com
Некоторые распространённые направления задач:
- Графы. habr.com Участники реализуют алгоритмы для работы с графами, включая, например, обходы в глубину и ширину, поиск кратчайшего пути и т. п.. habr.com
- Структуры данных. habr.com Нужно, например, манипулировать расположением элементов массива, расположив их в обратном порядке, или же найти mix/max значение в определённом диапазоне массива с применением дерева отрезков. habr.com
- Теория чисел. habr.com Использование алгоритмов для решения математических задач, включая нахождение наиболее общего делителя, простых чисел и т. п.. habr.com
- Динамическое программирование. habr.com В этом случае участникам предлагают решить оптимизационную задачу. habr.com Требуется разбивать основное задание на подзадачи и использовать результаты их решения для решения основной. habr.com
Существуют как локальные конкурсы, например, мини-турниры на платформах Codeforces, TopCoder или Codechef, так и крупные международные чемпионаты и олимпиады, в которых участвуют десятки тысяч программистов. vc.ru