Задача: Вы производитель соков, который ищет лучших поставщиков для вашего бизнеса. Поставщики продают концентраты, которые содержат 3 ингредиента: X: Y: Z в разных пропорциях. Ваш сок должен иметь эти пропорции как 1: 1: 1, иначе это не будет вкусно. Вес концентрата представляет собой сумму его ингредиентов в фунтах, и все поставщики продают свои концентраты по той же цене, однако ваш грузовик может перевозить до 400 фунтов концентратов. Найти лучших поставщиков для вашего бизнеса: купить (найти) столько фунтов концентрата, сколько сможете (но менее 400 фунтов), зная, что соотношение ингредиентов, отличных от 1: 1: 1, не будет приемлемым.Риск ранца с надлежащим ограничением отношения и ограничением веса
Вход: Первая строка показывает, сколько концентраты продаются на рынке (менее 200) Следующие п линии о пропорциях X: Y: Z ингредиенты концентратов (в фунтах)
Выход: Первая строка должна быть суммой веса ингредиентов концентратов, которые вы будете покупать (меньше 400 фунтов). Вторая строка должна указать, сколько концентратов вы должны купить, чтобы получить эту сумму, надлежащие пропорции
Пример:
in:
4 //how many concentrates are sold on the market
1 2 3 //first concentrate contains 1lb of X, 2lbs of Y, 3 lbs of Z
0 4 1
1 3 4
1 1 1
2 1 0
out:
12 //4lbs of ingredient X + 4lbs Y + 4lbs Z
3 //we're buying three concentrates: the first one, fourth and fifth (1 2 3; 1 1 1; 2 1 0) so we're getting the biggest amount of it with 1:1:1 ratio of ingredients
Мое решение: Мое решение было метод грубой силы, которая очень медленно, когда есть много поставщиков, как его сложности 2^(п-2) - этот алгоритм будет просто создать все возможные комбинации концентратов мы могли бы купить, и он будет проверять, являются ли их пропорции 1: 1: 1, если да, то это будет сравнивать их и найти тот, у которого наибольшее количество общих ингредиентов составляет менее 400 фунтов.
Я ищу алгоритм динамического подхода, однако я понятия не имею, как это сделать с надлежащим ограничением отношения.
Что делать, если работает более одной комбинации? – BlackBear
Вы имеете в виду, что есть две или более комбинации правильных пропорций, а вес суммы его ингредиентов одинаковый? Проблема ничего не говорит об этом, поэтому я предполагаю, что будет только одна комбинация, подобная этой. Но да, будет больше, чем одна комбинация, которая в правильном соотношении, но мы ищем тот, который будет иметь наибольшее количество ингредиентов (и все ингредиенты 1: 1: 1). – drakerc
Вполне вероятно, что будет несколько комбинаций, которые приведут к лучшему весу, поэтому вам нужно знать, следует ли максимизировать или минимизировать вторую строку ответа. – user3386109