|
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
|
|
Задача: "Арбузы"23.01.2014, 14:32. Показов 4124. Ответов 6
Метки нет (Все метки)
Две машины заполнены арбузами. В одной машине N (1<N<50) арбузов, а в другой - M (1<M<50). Вес каждого арбуза известен. Сколько арбузов необходимо перенести с одной машины в другую и наоборот, чтобы общий вес арбузов в одной машине сравнялся с общим весом арбузов в другой машине. Число переносов должно быть минимальным.
Например, если в первой машине находится четыре арбуза весом 7, 2, 5, 4 кг, их общий вес составляет 18 кг. Во второй машине три арбуза весом 3, 3, 5 кг с общим весом в 12 кг. Для решения этой задачи необходимо перенести арбуз в 7 кг из первой машины во вторую машину, а из второй машины арбуз в 4 кг перенести в первую. В итоге будет по 15 кг. Пример входных и выходных данных: Вход: Выход: 7 2 5 4 7 4 3 5 4 Помогите пожалуйста с такой сложной задачей.
0
|
|
| 23.01.2014, 14:32 | |
|
Ответы с готовыми решениями:
6
Арбузы Арбузы Задача про арбузы |
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
| 23.01.2014, 15:21 | |
|
Понятия динамическое программирование, очередь знакомы?
0
|
|
|
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
|
||
| 23.01.2014, 18:17 [ТС] | ||
|
0
|
||
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
| 23.01.2014, 21:36 | |
|
а про массивы что-нибудь знаете?
код писать не буду (написанный мною код не принесет Вам никакой пользы). если есть желание, могу описать алгоритм решения задачи, но для этого Вы должны знать как минимум про очереди и структуры. Почитайте пор стеки, очереди и структуры, как все станет с ними понятно можно будет решить эту задачу.
0
|
|
|
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
|
||
| 24.01.2014, 14:22 [ТС] | ||
|
я изначально думал просто через массив, но алгоритм составить не получается, просто сравнивать все элементы вместе это нужно 100 циклов, потом ещё возможен перенос только одного арбуза из одной машины. помогите с непонятным алгоритмом, записать в коде не проблема
Добавлено через 4 минуты Вход: тест 1: 7 2 5 4 тест 2: 4 3 5 Выход: тест 1: 7 тест 2: 4
0
|
||
|
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||
| 24.01.2014, 20:31 | ||
|
Создаем массив a[0..2000] все значения которых изначально делаем например 200. Каждое значение этого массива будет меняться в процессе выполнения программы и будет означать вот что: например a[4]=10, это значит что чтобы достичь в первой машине веса 4 кг, нужно будет переместить 10 арбузов (неважно из какой машины сколько и каких именно). Затем создаем массив b[1..20] (мы договорились что вес арбузов не превышает 20 кг) в котором запишем сколько каких арбузов есть в обеих машинах. Например b[3]=4 означает что арбузов с весом 3 в обоих машинах всего четыре. Затем создаем структуру в которой будет всего один массив (такой же как массив b[]), и на основе этой структуры создаем массив таких структур размером [0..2000] (пусть это будет массив c[1..2000]). Каждый элемент этого массива будет содержать информацию о том сколько каких арбузов содержится в первой машине. Т.е. в c[5] можно узнать при весе в первой машине 5 кг, сколько каких арбузов в первой машине есть. (Можно в эту структуру включить и данные из массива a[], но необязательно, я намеренно разделил их чтобы понятнее было объяснить) Теперь так, суммируем все арбузы в первой машине (пусть получилось X кг). Тогда a[X] делаем равным 0 (чтобы достичь в первой машине X кг нужно перенести 0 арбузов). Записываем все имеющиеся арбузы в c[X]. И заносим значение X в очередь. Далее обрабатываем элементы очереди так: Берем очередной номер Y из очереди. Перебирая имеющиеся арбузы в c[Y] и учитывая все имеющиеся арбузы в b[] смотрим улучшаем (уменьшаем) ли значение в массиве a[]. Например очередной элемент в очереди 20 и a[20]=3 (еще раз напомню это значит что чтобы сделать в первой машине 20 кг нужно переложить 3 арбуза). Смотрим имеющиеся арбузы в первой машине для 20 кг и учитывая все имеющиеся арбузы мы например можем убрать из первой машины арбуз весом 3 кг. Тогда смотрим значение a[17]. Если это значение больше чем a[20]+1 , то записываем в a[17] значение a[20]+1. Арбузы из c[20] переписываем в c[17] (без одного арбуза весом 3 кг). И заносим 17 в очередь. Аналогично для добавления арбуза весом 3 кг в первую машину, делаем тоже самое для a[23] и c[23] (только туда добавляем еще один арбуз весом 3 кг). В общем такой алгоритм. )
1
|
||
|
10 / 10 / 4
Регистрация: 31.08.2013
Сообщений: 60
|
|
| 25.01.2014, 11:48 [ТС] | |
|
valeriikozlov, Спасибо большое
0
|
|
| 25.01.2014, 11:48 | |
|
Помогаю со студенческими работами здесь
7
Задача про арбузы и дыни Задача "Антон и арбузы" Арбузы Антон и арбузы Арбузы (оптимальный поиск min и max) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|