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

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

16.02.2020, 01:50. Показов 4607. Ответов 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,988
Записей в блоге: 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,531
Записей в блоге: 1
16.02.2020, 10:22
_Ivana, специально ли так вырвиглазно написано, чтоб автор ничего не понял?
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,988
Записей в блоге: 32
16.02.2020, 14:23
Каждый судит о мотивах других, исходя из своих.
Цитата Сообщение от ValeryS Посмотреть сообщение
у_Ivana своя логика, каждая строчка свой функциональный блок, тем более что он не только на Си пишет
ЗЫ переформатировать кота сможет любой.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
17.02.2020, 13:56
_Ivana, да как бы ты ни любил "функциональные блоки"...
писать обфусцированные функции с именем f и переменной r, без комментариев и пояснений - это говнокод на любом языке/в любой парадигме программирования.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,988
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru