Ctrl K

Двоичные строки без длинных серий

Средняя
Нужно составить строку ровно из zeros нулей и ones единиц. Строка подходит, если в ней нет серии одинаковых символов длиннее max_run, то есть никакие max_run + 1 подряд идущих символа не совпадают. Посчитайте, сколько существует подходящих строк. Ответ может быть большим, поэтому верните его по модулю 10⁹ + 7.
Пример 1
zeros=2, ones=1, max_run=1 → 1

Подходит только 010: в 001 и 100 два нуля стоят подряд.

Пример 2
zeros=2, ones=2, max_run=2 → 6

Ограничение на длину серии ничего не запрещает, так что подходят все C(4, 2) = 6 расстановок.

Пример 3
zeros=3, ones=2, max_run=2 → 7

Из 10 расстановок исключаем те, где три нуля подряд: 00011, 10001, 11000. Остаётся 7.

Ограничения
  • 1 ≤ zeros, ones, max_run ≤ 200
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазрез с лучшими средними СредняяРастущий лимит на сундуки СредняяОтрезки с нечётной суммой СредняяПрыжки по целым плиткам СредняяЗатишье до и после Средняя
загружаем Python…
Вход
zeros=2, ones=1, max_run=1
Ожидается
1

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 131 тест на сервере, включая скрытые.