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

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

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

> Клад
DarkWishmaster
сообщение 22.05.2011 23:57
Сообщение #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 - 23.05.2011 0:01
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 28.05.2011 5:41
Сообщение #2


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

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

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


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

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

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

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

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

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

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

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

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


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

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


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

 



- Текстовая версия 28.04.2024 21:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"