У меня есть список товаров
, который состоит из списка магазинов
, которые его продали.
{
'Book A': [ShopA, ShopB, ShopC],
'Book B': [ShopC, ShopD],
'Movie C': [ShopA, ShopB, ShopD, ShopE],
...
}
(Цена в магазинах разная)
В каждом магазине также есть стоимость доставки. Это стоимость доставки "за заказ", не имеет значения, сколько товаров в моей корзине. И это тоже различается между магазинами.
Пример: если я покупаю «Книгу A» в ShopA, «Книгу B» в ShopC и «Фильм C» в ShopA, итоговая цена будет: Цена книги A в ShopA
+ Book Цена B в ShopC
+ Цена фильма C в ShopA
+ Стоимость доставки ShopC
+ ShopA стоимость доставки
Если стоимость доставки была равна нулю или она была на -item базис и константа, то я бы просто отсортировал списки предложений по полю цена + доставка
и получил бы первый результат из каждого набора.
Мне нужно купить все предметы один раз и найти минимальную цену и получившийся набор.
Я не очень хорошо разбираюсь в алгоритмах оптимизации и динамическом программировании, поэтому мне нужно решение или просто намек в правильном направлении.