X-tender Опубликовано 4 апреля, 2009 Жалоба Поделиться Опубликовано 4 апреля, 2009 muvick, может и не была последней, но в таком случае не сойдутся цифры и запустится следущая итерация, и результат не выдаст положительный. И размер при этом не имеет значения. Ссылка на комментарий
muvick Опубликовано 4 апреля, 2009 Жалоба Поделиться Опубликовано 4 апреля, 2009 я согласен с тем что такой алгоритм верный, только у меня он чето на 8 тесте падает Ссылка на комментарий
X-tender Опубликовано 4 апреля, 2009 Жалоба Поделиться Опубликовано 4 апреля, 2009 muvickпокажи код, если ты уже переписал, гляну мб подправлю Ссылка на комментарий
muvick Опубликовано 4 апреля, 2009 Жалоба Поделиться Опубликовано 4 апреля, 2009 я про свой код говорил. Ссылка на комментарий
Lakers Опубликовано 4 апреля, 2009 Жалоба Поделиться Опубликовано 4 апреля, 2009 X-tenderсмотри 13-й пост Ссылка на комментарий
X-tender Опубликовано 5 апреля, 2009 Жалоба Поделиться Опубликовано 5 апреля, 2009 Lakers, да я думал он мой алгоритм переписал на плюсы, метод перебора мне не нравится, поэтому даже смотреть не стал Ссылка на комментарий
Lakers Опубликовано 5 апреля, 2009 Жалоба Поделиться Опубликовано 5 апреля, 2009 ну что,кто доделал? Ссылка на комментарий
0xDEADBEEF Опубликовано 5 апреля, 2009 Автор Жалоба Поделиться Опубликовано 5 апреля, 2009 X-tenderНуну)Сложна сия задача, не решить нам её...Ещё раз предлагаю оставить её как гроб и двигатся дальше. Ссылка на комментарий
Lakers Опубликовано 5 апреля, 2009 Жалоба Поделиться Опубликовано 5 апреля, 2009 ну давайте загадывайте следующую тогда=) Ссылка на комментарий
0xDEADBEEF Опубликовано 5 апреля, 2009 Автор Жалоба Поделиться Опубликовано 5 апреля, 2009 С вашего позволения)КоробкиTime limit: 5 секундУ Пети накопилось много картонных коробок. Они ему еще послужат службу в будущем, но сейчас он хотел бы от них избавиться -- сдать в камеру хранения. В камере хранения за каждое место берут деньги. Помогите Пете уложить коробки друг в друга так, чтобы плата за их хранения была минимальна.Известно, что никакие две коробки не поместятся ни в какую другую, если их поставить рядом. Коробка со сторонами x1, x2, x3, x1 >= x2 >= x3, помещается в коробку со сторонами y1, y2, y3, y1 >= y2 >= y3, еслиx1 < y1, x2 < y2, x3 < y3.Вход. Вход начинается с числа коробок N <= 500 , затем следует N строчек, содержащих параметры каждой коробки -- длины её трёх сторон -- три натуральных числа меньше 2 000 000.Выход. Минимальное число коробок, в которые все остальные можно поместить.ВХОД #1:21 2 34 3 2ВЫХОД #1:1ВХОД #2:21 2 32 3 3ВЫХОД #2:2ВХОД #3:43 3 34 4 45 5 52 3 4ВЫХОД #3:2Ссылка на источникЗадача интересна всем, оригинальная постановка и способы решения: их 2, один классический долгий, другой быстрый но походящий только к этой постановке.Итак для зачтения принимаются 2 фразы - постановка, и способ решения. Если нет - тогда прохождение её на соответствующем сервере. Ссылка на комментарий
toll Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 0xDEADBEEFпервая мысльвсе коробки в массив и посортировать.... Ссылка на комментарий
Lakers Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 не,вы не говорите свои мысли,вы пытайтесь ре5шить вначале и сдать на сервере по возможности. Ссылка на комментарий
0xDEADBEEF Опубликовано 6 апреля, 2009 Автор Жалоба Поделиться Опубликовано 6 апреля, 2009 Скажу сразу: жадность - порок, и коробки не исключение. Ссылка на комментарий
Lakers Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 типо две в одну не залезут? Ссылка на комментарий
0xDEADBEEF Опубликовано 6 апреля, 2009 Автор Жалоба Поделиться Опубликовано 6 апреля, 2009 Если брать самую большую, в неё ложить следующую меньшую и т.д., то ничего не выйдет Ссылка на комментарий
Lakers Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 а может в одной несколько лежать? Ссылка на комментарий
L0K1 Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 Берем коробку - самую большую и выбираем такие коробки которые займут в ней максимальное место при этом, если несколько вариантов равнозначны, брать те где коробок меньше и они больше..Я думаю. Но простая сортировка - сильно не вариант. Ссылка на комментарий
0xDEADBEEF Опубликовано 6 апреля, 2009 Автор Жалоба Поделиться Опубликовано 6 апреля, 2009 L0K1Если брать самую большую, в неё ложить следующую меньшую и т.д., то ничего не выйдет/quote]А разве не одно и тоже?Жадность не пройдёт в любом виде. Ссылка на комментарий
L0K1 Опубликовано 6 апреля, 2009 Жалоба Поделиться Опубликовано 6 апреля, 2009 0xDEADBEEFя невнимательно прочитал задание, в одну коробку две не влезут..Мой вариант был сортировкой с поправкой на несколько коробок.Тогда в голову приходит только такая метода:Банда коробок собираются одна в другую:прогонка по заданному условию + сортировка по площади.перебираем пока не соберется самая большая группа, коробок одна в другой. затем гоняем оставшиеся по такому же алгоритму.Но у меня уже передоз кофе, весьма возможно я не адеквашен.. Ссылка на комментарий
0xDEADBEEF Опубликовано 7 апреля, 2009 Автор Жалоба Поделиться Опубликовано 7 апреля, 2009 Не, подозревая что этот способ некорректен.Вобщем подсказка номер раз - в них живут якуты, а главный якут по имени Дилуорт большой мастер по складыванию коробок) Ссылка на комментарий
Lakers Опубликовано 8 апреля, 2009 Жалоба Поделиться Опубликовано 8 апреля, 2009 чето не могу понять в чем ошибка, WA на седьмом тесте(uses crt;var a:array[1..500,1..3]of integer; b:array[1..500]of boolean;i,j,k,n:integer;procedure swap(var x:integer;var y:integer);var w:integer;beginw:=x;x:=y;y:=w;end;procedure sort(q,p:integer);var x,l,r:integer;beginl:=q;r:=p;x:=a[(l+r)div 2,1];while l<=r do beginwhile a[l,1]while a[r,1]>x do dec®;if l<=r then beginswap(a[l,1],a[r,1]);swap(a[l,2],a[r,2]);swap(a[l,3],a[r,3]);dec®;inc(l);end;end;if lif r>q then sort(q,r);end;beginreadln(n);for i:=1 to n do b:=true;for i:=1 to n do beginreadln(a[i,1],a[i,2],a[i,3]);if a[i,3]>a[i,1] then swap(a[i,1],a[i,3]);if a[i,2]>a[i,1] then swap(a[i,1],a[i,2]);if a[i,3]>a[i,2] then swap(a[i,2],a[i,3]);end;sort(1,n);k:=0;for i:=1 to n do for j:=i to n do if (a[i,1] begin inc(k); b[j]:=false; break; end;write(n-k);end. Ссылка на комментарий
0xDEADBEEF Опубликовано 9 апреля, 2009 Автор Жалоба Поделиться Опубликовано 9 апреля, 2009 LakersОчевидно в неверном алгоритме.Читай внимателно мои посты, никаких сортировок и жадности здесь нет. Ссылка на комментарий
muvick Опубликовано 9 апреля, 2009 Жалоба Поделиться Опубликовано 9 апреля, 2009 вот примеры где жадность не подходит4100 50 4090 60 1080 40 570 35 354104 90 40103 80 50102 60 45101 70 30в обоих случаях ответ = 2 Ссылка на комментарий
Lakers Опубликовано 9 апреля, 2009 Жалоба Поделиться Опубликовано 9 апреля, 2009 в пкрвом случие 2 а во втором 3?или я не так щитаю? Ссылка на комментарий
0xDEADBEEF Опубликовано 9 апреля, 2009 Автор Жалоба Поделиться Опубликовано 9 апреля, 2009 LakersВо втором случае 3->2; 4->1; Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти