Количество ПСП с заданным балансом и нужной длиной

Материал из Algocode wiki
Версия от 18:01, 6 февраля 2021; Глеб (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Задача

В получении номера по ПСП и ПСП по номеру нам потребуется вспомогательная динамика ValidSequencesCount(n, balance), где n − количество оставшихся позиций в последовательности, а balance − текущий скобочный баланс, которая возвращает количество СП такой длины и такого баланса.

Как считать ValidSequencesCount ?

Предподсчитаем все значения этой функции динамическим программированием.

  1. База $VSC[0][0] = 1$, $VSC[0][1 \ldots n] = 0$
  2. Переход $VSC[n][balance] = \underbrace{VSC[n-1][balance + 1]}_{\text{ставим "("}} + \underbrace{VSC[n-1][balance - 1]}_{\text{ставим ")"}}$



Автор конспекта: Александр Гришутин

По всем вопросам пишите в telegram @rationalex