Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2013, 15:31   #1
maxim3535
Пользователь
 
Регистрация: 31.03.2013
Сообщений: 14
По умолчанию задача на упаковку ранца(язык С)

Прошу помощи в решении задачи!

Есть ранец, вместимость которого m кг, и есть перечень предметов. У каждого предмета есть два параметра: масса и стоимость. Нужно собрать предметы в рюкзак так, чтобы общая стоимость предметов в рюкзаке была максимальной, но при этом общая масса предметов не превышала вместимость рюкзака.

Последний раз редактировалось maxim3535; 31.05.2013 в 15:36.
maxim3535 вне форума Ответить с цитированием
Старый 31.05.2013, 23:21   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Самым простым способом является перебор всех вариантов взятия предметов и выбора из них наилучшего. Опять же для упрощения, предположим что предметов не больше 32. Запросим от пользователя вместимость, количество предметов и информацию о них (заведем массив, который хранит массу, стоимость, название для наглядности). Полагаем, что наилучший набор 0, т.е. ни одного предмета, цена 0. Затем в цикле от 1 до 1 << count -1 (счетчик типа unsigned int) считаем массу и стоимость набора (счетчик цикла является битовой маской тех предметов, что в данный момент собираются поместить в рюкзак). Если полученная цена больше предыдущей сохраненной, а масса не превышает вместимости, то набор сохраняется в отдельную переменную. После цикла осталось вывести сохраненный набор на экран.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки(язык C) Obsidian2010 Помощь студентам 0 18.11.2012 21:11
Задача в Matlab (М-язык) ALUKARD2011 Помощь студентам 1 19.01.2012 23:11
Задача на дивиденды (язык C++) Negent Помощь студентам 1 12.08.2010 23:25
задача на массив(язык С) Bella Помощь студентам 1 17.10.2009 17:44
Задача на массив (язык C) Bella Помощь студентам 2 08.10.2009 19:50