Я пытаюсь решить следующую проблему DP:
У вас есть 4 типа блоков lego, размеров 1 * 1 * 1, 1 * 1 * 2, 1 * 1 * 3 и 1 * 1 * 4. Предположим, что у вас есть бесконечное количество блоков каждого типа.
Вы хотите сделать из них высоту H и ширину M. У стены не должно быть отверстий. Стена, которую вы строите, должна быть одна сплошная структура. Твердая структура означает, что это не должно быть можно отделить стену вдоль любой вертикальной линии без резки любой блок lego, используемый для сборки стены. Блоки могут размещаться только горизонтально. Сколько способов построить стену?
Вот как я пытаюсь это сделать: Представление 1 * 1 * 1, 1 * 1 * 2, 1 * 1 * 3 и 1 * 1 * 4 блоков с b c d , Допустимые шаблоны выделены жирным шрифтом. Недопустимые шаблоны, которые могут быть разбиты по вертикальной линии.
H = 1 и W = 3 #valid pattern = 1
aa ab ba cH = 2 и W = 3 #valid pattern = 9
Я пытаюсь найти шаблон повторения либо для увеличения его по высоте, либо по ширине. i.e найти значения для H = 3 и W = 3 или H = 2 & W = 4.
Любые входные данные о том, как увеличить формулу для роста по высоте или весу?
Постскриптум Стена всегда H * W * 1.