|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
||||||
Задача о рюкзаке методом динамического программирования03.01.2019, 13:18. Показов 26498. Ответов 13
Метки нет (Все метки)
Здравствуйте, помогите, пожалуйста, реализовать до конца программу.
Входные данные должны быть следующими: Данные подаются на стандартный поток ввода. Пустые строки игнорируются. Первая строка содержит натуральное число - максимальную массу предметов, которую выдержит рюкзак. Каждая последующая содержит два неотрицательных числа: массу предмета и его стоимость. Выходные: Первая строка содержит два числа: суммарную массу предметов и их суммарную стоимость. В последующих строках записаны номера предметов, которые были помещены в рюкзак, в порядке возрастания номера. Результат работы программы выводится в стандартный поток вывода. Входные данные я реализовал, а вот с выходными проблема. Не понимаю как выводить номера элементов, вошедшие в рюкзак. Прикладываю код (VS2017):
И еще, у меня не корректно работает алгоритм "засовывания" в рюкзак: на данных 165 23 92 31 57 29 49 44 68 53 60 38 43 63 67 85 84 89 87 82 72 Результат вообще не выводится. Можете, хотя бы направить в каком направлении думать...
0
|
||||||
| 03.01.2019, 13:18 | |
|
Ответы с готовыми решениями:
13
Задача коммивояжера методом динамического программирования Игра Ним методом динамического программирования Задача о рюкзаке методом полного перебора. Нужно пояснение по коду |
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
||||||
| 03.01.2019, 16:00 | ||||||
Сообщение было отмечено BoumRZ как решение
Решение
1
|
||||||
|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
|
| 03.01.2019, 16:01 [ТС] | |
|
Извини, а можешь вкратце объяснить что происходит в этом коде?
0
|
|
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
| 03.01.2019, 16:02 | |
|
BoumRZ, тут все расписано, мне лень,сорян
http://neerc.ifmo.ru/wiki/inde... 0.B8.D1.8F
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
|
| 03.01.2019, 16:04 [ТС] | |
|
LegionK, ладно, в любом случае огромное спасибо. Вы мне очень помогли.
Теперь мне осталось получше разобраться..
0
|
|
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
| 03.01.2019, 16:05 | |
|
BoumRZ, вы хоть проверьте,чтобы работало, я же тоже накосячить могу
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
|
| 03.01.2019, 16:13 [ТС] | |
|
LegionK, на том сайте, который Вы скинули компилируется хорошо. Я проверял: заново компилировал.
А вот в VS почему-то не хочет компилироваться. Пишет, что выражение в индексе матрицы должно быть константным, но при этом, не n, не w нельзя делать константными, иначе изменять их нельзя будет.. Возможно, это баг самой VS, потому что бывает с ней нечто подобное: на других компиляторах компилируется, а на ней -нет.
0
|
|
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
| 03.01.2019, 16:29 | |
|
BoumRZ, потому что в vs нельзя указать размер массива переменной
https://ideone.com/pqt2eS За то,что компилироваться будет - я гарантирую,лучше корректность ответа бы проверили
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
|
| 03.01.2019, 17:36 [ТС] | |
|
LegionK, Я проверил решение на ejudge и тест показал, что программа не работает на следующих данных:
750000000 70000000 135 73000000 139 77000000 149 80000000 150 82000000 156 87000000 163 90000000 173 94000000 184 98000000 192 106000000 201 110000000 210 113000000 214 115000000 221 118000000 229 120000000 240 Как можно решить эту проблему?
0
|
|
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
| 03.01.2019, 18:09 | |
|
BoumRZ, и какой вердикт он отдает? Wrong answer/runtime error/time limit /memory limit?
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
|
| 03.01.2019, 18:12 [ТС] | |
|
LegionK,Превышено ограничение на время. А пишет "Max. CPU time: 0.612"
0
|
|
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
|
| 03.01.2019, 18:22 | |
|
BoumRZ, не, с этим я тебе помочь уже не могу,сорян, даже Вики грит,что w больше 10^7 делать не стоит. Алгоритм же NW сложность имеет, это порядка 15*7,5*10^8 операций. Ну это даже чуть больше,чем, например, максимальные 10^9 для 1 сек в проверяющей системе timus.
Так что извини,но с этим я помочь не могу
0
|
|
|
0 / 0 / 0
Регистрация: 17.12.2018
Сообщений: 20
|
|
| 03.01.2019, 18:50 [ТС] | |
|
У меня есть идея: найти НОД для весов и на него разделить массы рюкзака и предметов.
Пока подумаю над этой идеей и над её реализацией, а, раз это форум, решил об этом сюда написать, вдруг у кого-то раньше появятся идеи как реализовать)
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
| 03.01.2019, 19:14 | |
|
BoumRZ, Ну есть еще вариант использования эвристики вместо брута. Итемы сортируются по невозрастанию веса и впихивается начиная с наибольшего что влезет. Не гарантирует наиболее оптимального решения но приемлемо оптимальное будет за примерно линейное время. Эту эвристику в принципе все системы раскроя заготовок пользуют в реальной жизни.
0
|
|
| 03.01.2019, 19:14 | |
|
Помогаю со студенческими работами здесь
14
Решение задач динамического программирования методом прямой прогонки Задача о рюкзаке методом динамического программирования, исправить код Решение задачи о рюкзаке методом динамического программирования Задача методом динамического программирования Задача о выборе траектории методом динамического программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|