Полка из досок
Задача по программированию с проверкой онлайн
- Сложность
- Лёгкая
- Языки
- Python
- JavaScript
- TypeScript
- Java
- Go
- Темы
- Динамическое программирование
Нужно заполнить полку длиной length досками без зазоров и без нахлёста. Доски бывают только тех длин, что перечислены в списке planks (длины положительные и различные), каждой длины запас неограничен. Доски кладут слева направо, и порядок важен: заполнения [1, 2] и [2, 1] считаются разными. Верните число различных заполнений. Для length = 0 заполнение одно (пустое); если заполнить нельзя, верните 0.
Можно рассуждать от последней доски: если она имеет длину p, то остальное заполняет полку длиной length - p. Ограничения: length не больше 30, в planks не больше 4 длин.
Пример: 4, [1, 2] → 5 (1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2).
Источник: задача CodeShare
Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).