Применение и виды комбинаторных объектов
В олимпиадных задачах часто приходится выполнять полный перебор возможных вариантов получения результата. Чаще всего требуется перебирать
1. подмножества, если решением является выборка из заданных элементов и их порядок не важен;
2. перестановки, если решением правильная последовательность заданных элементов;
3. сочетания, если решением выборка из
`K` заданных элементов и их порядок не важен.
Могут быть и другие требования к решению, но их можно реализовать, комбинируя указанные выше виды перебора.
Использование специальных алгоритмов перебора гарантирует, что все варианты решения будут рассмотрены.
Генерация подмножеств
Генерация перестановок
Генерация сочетаний
Эти алгоритмы можно применять и в тех случаях, когда у вас нет эффективного решения для больших значений параметров задачи, но вы можете получить часть баллов за задачу при небольших значениях параметров, перебрав все варианты.