Изменения

Перейти к: навигация, поиск

Правильные скобочные последовательности

5 байт добавлено, 19:17, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{Определение
|id = def1
|definition ='''Скобочная последовательность''' (анлгангл. ''Bracket Sequences'') {{---}} класс комбинаторных объектов, представляющих собой последовательность скобочных символов.}}
'''Примеры скобочных последовательностей'''
*<tex>(())))(</tex>
*пусть <tex>S1</tex>, <tex>S2</tex> {{---}} правильные скобочные последовательности, тогда <tex>S1S2</tex> есть правильная скобочная последовательность;
}}
'''Примеры правильных скобочный скобочных последовательностей'''
*<tex>((()()()()))</tex>
*<tex>(())(()())</tex>
'''return''' s
Пусть теперь разрешён не один, а <tex>k</tex> типов скобок. Тогда алгоритм решения будет отличаться от предыдущего случая только тем, что мы должны домножать значение <tex>d[2n - i + - 1][\rm ndepth]</tex> на величину <tex>k^{(2n - i - 1 - \rm ndepth) / 2}</tex>, чтобы учесть, что в этом остатке могли быть скобки различных типов, а парных скобок в этом остатке будет только <tex>2n - i - 1 - \rm ndepth</tex>, поскольку <tex>\rm ndepth</tex> скобок являются закрывающими для открывающих скобок, находящихся вне этого остатка (а потому их типы мы варьировать не можем).
Сложность данного алгоритма <tex>O(n^2 + n \cdot k)</tex>.
1632
правки

Навигация