Ctrl K

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

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

Два нуля нельзя ставить рядом, поэтому подходит только 010.

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

Символы обязаны чередоваться: 0101 и 1010.

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

Из 10 расстановок трёх нулей и двух единиц не подходят три: 00011, 10001 и 11000 — в каждой три нуля подряд. Остаётся 7.

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

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