J. Сколько разбиений на палиндромы
3000 мс · 256 МБ · всё или ничего
Посчитайте количество способов разрезать строку на палиндромы по модулю . Разбиения различаются набором позиций разрезов.
Схема та же, что в классной задаче про наименьшее число кусков, но вместо минимума - сумма:
Это общее правило: одна и та же динамика с считает оптимум, с суммой - количество. Меняется только операция сборки, а состояния и переходы те же.
Ответ всегда не меньше единицы: разбиение на отдельные буквы существует всегда.
При ответ огромен - отсюда и модуль. Не забудьте брать остаток на каждом шаге, а не в конце.
Формат ввода
Одна строка длины () из строчных латинских букв.
Формат вывода
Одно число - количество разбиений по модулю .
Примеры
ввод
aab
вывод
2
ввод
abcde
вывод
1
Войдите, чтобы отправлять решения.