Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 3

Ламинат или Количество способов замостить прямоугольник M*N прямоугольниками M*1 и 1*M

16.02.2020, 01:50. Показов 4640. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ламинат
Требуется замостить пол комнаты шириной N и длиной M с помощью N полос ламината размером 1xM. Самый простой способ укладки - N полос, одну возле одной. Однако, в разработанной игре можно укладывать полосы ламината как вдоль длины комнаты, так и вдоль ширины. При этом пилить или ломать полосы ламината нельзя. Также нельзя укладывать одну полосу поверх другой. Все полосы должны лежать на полу, не оставляя непокрытых мест. При таком подходе можно придумать много способов укладки ламината, например, для комнаты шириной 3 и длиной 2 существует 3 способа укладки. Для заданных M и N требуется определить количество допустимых способов укладки.
Формат входных данных
Входные данные состоят из одной строки, которая содержит два натуральных числа M и N (1 ≤ N ≤ 40, 2 ≤ M ≤ 10).
Формат результата
В качестве результата нужно записать одно число – количество допустимых способов укладки ламината.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
 
using namespace std;
int main()
{
 
    int n,m,k,res=0;
    cin>>m>>n;
    if(n<m)cout<<1;
    else {
    double K =n/m;
    k = (int) K;
    res= 1+k;
    for(int a = 1; a<=k; a++)
    {
        res+=(n-a*m)*a;
    }
cout<<res;
return 0;
}
}
проходит только 3 теста.
Пожалуйста, помогите решить и разобраться в алгоритме)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2020, 01:50
Ответы с готовыми решениями:

Количество способов замостить прямоугольник M*N прямоугольниками M*1 и 1*M
Добрый день! Подскажите пожалуйста, как решить данную задачу: Дан прямоугольник M*N. Нужно узнать сколькими способами его можно...

Подсчитать количество способов замостить шахматную доску доминошками
На шахматной доске,размером N*N клеток(2&lt;=N&lt;=8),подсчитать кол-во способов,которыми можно замостить данную доску стандартными...

Решить задачу "Паркет". Найти количество способов замостить эту площадь фигурами
Здравствуйте! Нужна помощь, нужно решить олимпиадную задачку по динамическому программированию по профилю на С#. Обшарил весь нет, нашел...

6
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
16.02.2020, 04:14
...
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
16.02.2020, 06:19
Лучший ответ Сообщение было отмечено Kuzya31 как решение

Решение

C++
1
2
3
int f (int n, int m) { int r=1; for (int j=0; m+j<=n; j++) r += f(n-m-j, m); return r; }
 
int main() { int n, m; std::cin >> m >> n; std::cout << f(n, m); }
PS мемоизацию добавить по вкусу. Но при данных диапазонах аргументов и без нее норм.
2
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
16.02.2020, 10:22
_Ivana, специально ли так вырвиглазно написано, чтоб автор ничего не понял?
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
16.02.2020, 14:23
Каждый судит о мотивах других, исходя из своих.
Цитата Сообщение от ValeryS Посмотреть сообщение
у_Ivana своя логика, каждая строчка свой функциональный блок, тем более что он не только на Си пишет
ЗЫ переформатировать кота сможет любой.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
17.02.2020, 13:56
_Ivana, да как бы ты ни любил "функциональные блоки"...
писать обфусцированные функции с именем f и переменной r, без комментариев и пояснений - это говнокод на любом языке/в любой парадигме программирования.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
17.02.2020, 21:33
Конечно Лучше писать ноющие посты на форумах про чужой говнокод, когда сам ниасилил задачу

ЗЫ для справки, давным давно, много лет назад, у нас с вами состоялся нелицеприятный диалог, вследствие которого я сформировал о вас определенное мнение. С тех пор оно только укрепилось Поэтому вы можете продолжать задавать мне вопросы, высказывать свое мнение по поводу мотивов моих действий и качества моего кода, но, думаю, вы догадываетесь, как я к этому отношусь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2020, 21:33
Помогаю со студенческими работами здесь

Как замостить текстурой прямоугольник?
Имеется уже созданная (скорее всего загруженная из файла) текстура на hdc1, она известного размера (xt,yt) Надо ей замостить прямоугольник...

Замостить прямоугольник картинками 2х видов по схеме
как наиболее простым методом вывести рисунок на экран? (к примеру квадратную картинку 32х32 пкс) и вопрос второй - если мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru