IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Клад
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 168
Пол: Мужской

Репутация: -  3  +


Привет. Вот задача с олимпиады.
Кладоискатели нашли в одном из замкнутых помещений средневекого замка N золотых слитков различных размеров. Каждый слиток представляем прямоугольный паралелипипед с рамзерами X*Y*Z. Для того чтобы извлечь слитки из замка, кладоискатели должны пробить в каменой стене одно или больше прямоугольных отверстий, которые не должны иметь точек соприкосновения. Слиток можно извлечь через отверстие только в том случае если , если ширина и высота отверстия равны или больше чем ширина и высота одной из прямоугольных граней паралелипипеда. Очевидно, слитки можно переворачивать произвольным образом.
Для того что-бы облегчить себе работу, кладоискатели желают что-бы площадь пробиваемых отверстий была наименьшей.
Пример:
n=3
1 4 4
5 3 2
1 2 2
Минимальная площадь: S=8
Вообще нету никаких идей на счет этой задачи. Может у вас есть? Только не надо сразу код, можно просто алгоритм.
1<=n<=5000;
1<=x,y,z<=10000;
время выполнения не должно превышать 3 сек.
обьем оперативной памяти не должен превышать 32 мегабайт.

Сообщение отредактировано: DarkWishmaster -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Влад, смотри, вот тебе пример.

Есть слитки (максимальный размер уже отброшен)
красный 1 х 8
желтый 6 х 1
зеленый 2 х 3
синий 5 х 2

Сначала поворачиваем их так, чтоб первое число было не больше второго:
красный 1 х 8
желтый 1 х 6
зеленый 2 х 3
синий 2 х 5

Нарисуем их так, чтоб левый нижний угол совпал: Прикрепленное изображение (масштаб не очень хорошо выдержан, извини)

Из рисунка ясно, что желтый заведомо пролезет в ту дырку, в которую пролез красный, и та же самая ситуация с зеленым и синим (для опредлелния этого как раз и нужна упорядоченость x<=y). Значит, желтый и зеленый можно выкинуть из нашего списка и не заботиться о них совсем.

Остаются красный и синий: Прикрепленное изображение

Вопрос: что выгоднее - сделать отдельную дырку для каждого (по его размерам) или же одну большую дырку (я дополнил тонкой линией), в которую пролезут оба?

Ответ на этот вопрос зависит от соотношения площадей розовой (двойная польза) и голубой (бесполезная площадь) частей дырки. Если голубая меньше розовой, то - да, выгодно. Если наоборот - невыгодно. Если равны - все равно )).

Но этот вопрос (как и ответ на него) чисто для удовлетворения любознательности. Для решения перебором это все не нужно. Просто обсчитываешь оба случая и сравниваешь результаты. Все )).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
DarkWishmaster   Клад   23.05.2011 3:57
Lapp   Вот задача с олимпиады. С какой, если не секрет?   23.05.2011 13:57
DarkWishmaster   С какой, если не секрет? Републиканской из Молдо…   23.05.2011 19:21
Lapp   Републиканской из Молдовы.Надеюсь, она уже заверши…   24.05.2011 3:04
DarkWishmaster   Надеюсь, она уже завершилась - да? Задачка хорош…   24.05.2011 16:47
TarasBer   Замени 3х2 на 2х3, тогда пролезет в 2х4   24.05.2011 17:21
DarkWishmaster   Замени 3х2 на 2х3, тогда пролезет в 2х4 Както та…   24.05.2011 17:30
Lapp   Ну допустим сортируем так чтобы грани были наимень…   25.05.2011 3:16
TarasBer   Ну перебрать все слитки хотя бы 1 раз тебе же всё …   24.05.2011 17:53
Lapp   Ну вот, выдалась минута.. Добавил чистку на каждом…   25.05.2011 7:42
DarkWishmaster   Ну вот, выдалась минута.. Добавил чистку на каждо…   26.05.2011 21:46
Lapp   Сортируем, потом по каким критериям брать слитки? …   27.05.2011 3:14
DarkWishmaster   так как нам нужна что бы площадь была наименьшей, …   27.05.2011 14:49
Lapp   так как нам нужна что бы площадь была наименьшей, …   27.05.2011 15:43
DarkWishmaster   Это я не понял. Ничего не надо ставить "оди…   27.05.2011 16:55
TarasBer   Не имелось в виду, что по одному слитку на дырку. …   27.05.2011 17:05
Lapp   Влад, смотри, вот тебе пример. Есть слитки (макси…   28.05.2011 9:41
DarkWishmaster   Влад, смотри, вот тебе пример. Есть слитки (макс…   28.05.2011 14:30


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 5:37
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name