![]() |
![]() |
LLL |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Женский Репутация: ![]() ![]() ![]() |
Помогите, пожалуйста, решить задачу: (задача олимпиадная 10 класс)
на поле размером N*M (1<=N<=10,1<=M<=15) расставляются 4 корабля: однопалубный, 2-палубный,3-палубный и 4-палубный.Корабли могут располагатся вертикально и горизонтально, не соприкасаясь друг с другом углами и границами. Требуется определить количество вариантов расположения кораблей на игровом поле. |
![]() ![]() |
RathaR |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
А почему бы не пойти "в лоб"...
Допустим у нас есть функция, которой передаються 4 параметра(координаты, направление корабля,количество палуб), и которая возвращает булевый результат, можна ли розместить корабль заданой величины в заданых координатах и заданом направлении. Под координатами корабля подразумиваем координаты его верхней левой клетки. И вот таким образом пробегаемся этой функцией 4 вложеных друг в друга цыкла(первый по 4 палубнику, последний по одно палубному) при этом считая кол-во удачных розстановок. Можна и без цыклов, рекурсией - перебор с отходом назад, правда я им слабо владею... Если делать цыклами то поидее будет (M*N)^4 итераций, что впринципе возможно... -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
![]() ![]() |
![]() |
Текстовая версия | 11.07.2025 13:33 |