Вопрос на ДП. Идей нету как решать Your text to link here...этот вопрос. Благодарен за помощь.
| № | Пользователь | Рейтинг |
|---|---|---|
| 1 | Benq | 3676 |
| 2 | jiangly | 3670 |
| 3 | Kevin114514 | 3657 |
| 4 | maroonrk | 3355 |
| 5 | Um_nik | 3353 |
| 6 | squareOf105 | 3346 |
| 7 | tourist | 3343 |
| 8 | strapple | 3324 |
| 9 | heuristica | 3322 |
| 10 | jiangbowen | 3291 |
| Страны | Города | Организации | Всё → |
| № | Пользователь | Вклад |
|---|---|---|
| 1 | Qingyu | 158 |
| 2 | nik_exists | 150 |
| 2 | maspy | 150 |
| 4 | AmShZ | 143 |
| 4 | Um_nik | 143 |
| 6 | Errichto | 139 |
| 7 | adamant | 137 |
| 8 | BledDest | 135 |
| 9 | maroonrk | 133 |
| 10 | qwexd | 130 |
Вопрос на ДП. Идей нету как решать 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 будет иметь только два значения — требуемая вложенность уже достигнута или еще нет.