Вопрос на ДП. Идей нету как решать Your text to link here...этот вопрос. Благодарен за помощь.
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3792 |
| 2 | VivaciousAubergine | 3647 |
| 3 | Kevin114514 | 3603 |
| 4 | jiangly | 3583 |
| 5 | strapple | 3515 |
| 6 | tourist | 3470 |
| 7 | dXqwq | 3436 |
| 8 | Radewoosh | 3415 |
| 9 | Otomachi_Una | 3413 |
| 10 | Um_nik | 3376 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | adamant | 152 |
| 3 | Um_nik | 146 |
| 4 | Dominater069 | 144 |
| 5 | errorgorn | 141 |
| 6 | cry | 139 |
| 7 | Proof_by_QED | 136 |
| 8 | YuukiS | 135 |
| 9 | chromate00 | 134 |
| 9 | TheScrasse | 134 |
Вопрос на ДП. Идей нету как решать Your text to link here...этот вопрос. Благодарен за помощь.
| Название |
|---|



Давай взглянем на грамматику для ПСП.
Из правила №1 следует, что для n = 0, k = 0 ответ 1, также если k > n ответ 0.
Из правила №2 следует, что для
dp[n, k]ответ равенdp[n-1, k-1] + x.Теперь найдём x. Для этого переберём m — место в котором мы будем разбивать текущую ПСП на две других по правилу №3. Значит
x = sum(dp[m,i] * dp[n-m,j])(Ещё надо как-то перебрать i и j, чтобы получить глубину k)Можно очень просто вот так: dp[n][m][k] — количество последовательностей из n скобок, сейчас открыто m, максимум было открыто k. Время куб, память при желании квадрат. Код, просто чтобы был. Набрать лучше самому, разумеется.
Можно ускорить до квадрата, если k будет иметь только два значения — требуемая вложенность уже достигнута или еще нет.