Блог пользователя ReTlaCe

Автор ReTlaCe, 4 года назад, По-русски

Привет, Codeforces. Кто-нибудь знает, как искать количество топологических сортировок за O(2^n*n)?

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Динамика по подмножествам. Перебираем все возможные перестановки, для проверки "можно ли поставить очередную вершину" нам лишь требуется знать, какие вершины уже были взяты — так получается $$$O(2^n)$$$ состояний вместо $$$O(n!)$$$.