0 / 0 / 0
Регистрация: 06.01.2009
Сообщений: 18
|
|
1 | |
Разделить массив на две половины так, чтобы сумма значений элементов были максимально близки07.01.2009, 15:30. Показов 10761. Ответов 17
Метки нет (Все метки)
Здравствуйте!!! Помогите мне ... У меня ЗАВТРА экзамен....
В морском порту города Владивостока хранятся N контейнеров (N - чётное число). Для погрузки контейнеров на судно, чтобы обеспечить равномерную загрузку, их необходимо разделить на две половины так, чтобы их массы были максимально близки. Решить эту задачу, предполагая, что информация о массах контейнеров (в тоннах) хранится в массиве M(N). В качестве ответа указать номера контейнеров одной половины и получаемые массы для каждой из половин. Например: Если M(6)=(10, 15, 18, 20, 16, 14), то одну половину составят 1, 4, 5 контейнеры (другую 2, 3, 6). Масса первой группы m1=10+20+16=46 т., масса второй группы m2=15+18+14=47 т. ВХОДНЫЕ ДАННЫЕ ВВОДЯТСЯ НЕ С ФАЙЛА, а просто с КЛАВИАТУРЫ!!!
0
|
07.01.2009, 15:30 | |
Ответы с готовыми решениями:
17
Разделить предметы на две группы так, чтобы общие веса были максимально близки Разделить массив на две равные части, суммы элементов которых наиболее близки к равности Разбить предметы на две группы так, чтобы массы в обеих группах были максимально одинаковые Распределить предметы по двум рюкзакам так, чтобы массы рюкзаков были наиболее близки |
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
07.01.2009, 16:46 | 2 |
Позновато спохватился... ничего стопроцентного пока в голову не лезет
0
|
0 / 0 / 0
Регистрация: 06.01.2009
Сообщений: 18
|
|
07.01.2009, 16:49 [ТС] | 3 |
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
||||||
07.01.2009, 17:24 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 06.01.2009
Сообщений: 18
|
||||||
07.01.2009, 17:53 [ТС] | 5 | |||||
Спасибо братан.... Но алгоритм этот даже и тест, который в примере не проходит...
Sinys, извини я дочитал от радости..... мне сначала его отсортировать надо потом в цикл???
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
07.01.2009, 17:59 | 6 |
Да сначала сортировку потом етот цикл пример проходит (в теории)
0
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
|
07.01.2009, 17:59 | 7 |
0
|
0 / 0 / 0
Регистрация: 06.01.2009
Сообщений: 18
|
||||||
07.01.2009, 19:17 [ТС] | 8 | |||||
Добавлено через 29 минут 14 секунд Ну что просмотрел, братан....
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
07.01.2009, 19:50 | 9 |
Мде у меня даже не компилится...
Походу у тебя с сортировкой что то не то... без сортировки будет выводить 44 и 49..
0
|
0 / 0 / 0
Регистрация: 06.01.2009
Сообщений: 18
|
|
07.01.2009, 20:15 [ТС] | 10 |
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
07.01.2009, 20:26 | 11 |
Ты в моем алгоритме ошибку зделал в 24й строке:
s=n/2 Добавлено через 2 минуты 17 секунд Блин ошибка s=n-1
0
|
0 / 0 / 0
Регистрация: 06.01.2009
Сообщений: 18
|
|
07.01.2009, 20:52 [ТС] | 12 |
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
07.01.2009, 21:09 | 13 |
Хз алгоритм я написал должен работать...
Смысл алгоритма: берем в 1ю стопку 1е и последнее число, во 2ю стопку второе и предпоследнее. потом к той стопке которая меньше добавляем наибольшее оставшееся число а к большей - меньшее.
0
|
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
|
||||||
07.01.2009, 23:07 | 14 | |||||
Sinys, у меня кстати тоже не работает этот алгоритм!!!
Добавлено через 4 минуты 22 секунды Я по-своему алгоритму написал, работает 100%. Суть в том, что не обязательно должны получиться две группы одинакового размера: В одной группе может быть один контейнер, во второй все остальные. Например контейнеры с массой {1,10,4,3,20,2}. Общий вес будет 40, значит на две группы приходится по 20. Вот полная программа:
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
07.01.2009, 23:11 | 15 |
0
|
10 / 8 / 2
Регистрация: 25.12.2008
Сообщений: 40
|
||||||
08.01.2009, 06:10 | 16 | |||||
Вот собственно все 100% работает
только я применил матричный массив ибо надо запоминать и положение/номер груза
0
|
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
|
|
08.01.2009, 12:45 | 17 |
В принципе предыдущая программа тоже запоминала положение груза.
Добавлено через 6 минут 6 секунд Странно! я ввел значение #define N 6, после чего заполнил массив значениями 10 15 18 20 16 14, как в примере, так сумма получилась 45 и 48... Зачем ломать голову, если программу уже написали???
0
|
28 / 28 / 6
Регистрация: 25.12.2008
Сообщений: 186
|
|
08.01.2009, 17:47 | 18 |
0
|
08.01.2009, 17:47 | |
08.01.2009, 17:47 | |
Помогаю со студенческими работами здесь
18
Метод, проверяющий можно ли разделить массив так, чтобы сумма элементов в обоих частях была равной Распределить числа на несколько групп так, чтобы в каждой группе суммы чисел были наиболее близки Преобразовать массив: сумма элементов первой половины должна быть как можно ближе к сумме элементов второй половины Преобразовать массив целых чисел так, чтобы вместо его положительных элементов были значения их факториалов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |