5. Чтение и разметка задач
8 апреля 2026 г.
Алгоритм чтения задачи
- Буква и название
- На некоторых соревнованиях буква задачи может обозначать её сложность (не стоит на это полагаться)
- На некоторых соревнованиях в названии задачи может содержаться подсказка к её решению (название также может сбивать решающего)
- Ограничения по времени и по памяти
- По этим данным можно определить [[7. Классы задач|классы алгоритмов]], подходящих для решения задачи
- Примеры и их пояснения
- В некоторых задачах достаточно этих данных, чтобы понять условие и примерное решение задачи
- Входные/выходные данные
- В совокупности с ограничениями задачи может позволить определить максимальную допустимую сложность алгоритма
- Условие
- Даёт полное понимание задачи
Зачем размечать задачи
Чтобы:
- Быстро выбрать новую задачу для решения
- Быстро понять задачу, не читая её условия
- Иметь предположительное решение, от которого можно отталкиваться
- Для того, чтобы сэкономить время для членов вашей команды при передачи задачи для дорешивания.
Алгоритм разметки задачи
- Тема задачи
- Помогает участнику команды быстро отобрать множество задач, в которых он силён
- Понять на что задача, фильтрация алгоритмов
- Максимальная допустимая сложность алгоритма решения
- Позволяет участнику команды быстро определить, насколько тяжело оптимизировать решение данной задачи
- Суть задачи в строгом виде (без лишней информации)
- Позволяет участнику команды, который впервые видит задачу, сэкономить время на чтении её условия
- Разбор примеров
- Аналогично пункту 3
- Сложность поиска решения
- Насколько тяжело найти теоретическое решение задачи
- Предположительное решение
- Первый шаг к поиску подходящего решения задачи
- Не всегда может быть найдено
- Сложность алгоритма предположительного решения
- Предположительное решение должно быть оптимизировано до допустимой сложности
- Непроходящее по сложности решение может использоваться для генерации тестов
- Сложность реализации решения
- Насколько тяжело запрограммировать решение задачи
Что делать после разметки задач
Распределить задачи:
- По сложности
- Чтобы задать порядок решения (от простых к сложным)
- По темам
- Какой-либо участник команды может быть более силён в определённой теме и менее силён в другой; такое разбиение позволит быстро отобрать подходящие задачи
Решать задачи в порядке возрастания их сложности, рационально подходя к выбору темы каждым участником команды.