Bestimmen Sie anhand einer Reihe von Elementen mit jeweils einem Gewicht und einem Wert die Anzahl jedes Elements, das in eine Sammlung aufgenommen werden soll, damit das Gesamtgewicht kleiner oder gleich einem bestimmten Grenzwert ist und der Gesamtwert so groß wie möglich ist.
Wikipedia für weitere Informationen
Zum Beispiel können Sie ein maximales Gewicht von 15 und Objekte mit Wert / Masse als erhalten, [5,2], [7,4] [1,1]
und Sie würden [7,0,1]
7 [5 <value>, 2 <mass>]
Objekte und 1 [1 <value>, 1 <mass>]
Objekt für eine Punktzahl von 36 ausgeben .
Regeln
Die Eingabe kann in jedem vernünftigen Format erfolgen
Ausgabe ist auch flexibles Format,
Sie dürfen keine Bibliotheken verwenden, die nicht dem Standard entsprechen. Wenn Sie eine Bibliothek installieren oder herunterladen müssen , um sie getrennt von der Ersteinrichtung zu verwenden, ist dies nicht zulässig
Objekte können eine negative Masse und einen negativen Wert haben (dh -1, -1).
Optimale Antworten erforderlich
Gewinnen
Der kürzeste Code gewinnt
Negative Masse und Wert?
Dies ist ein wesentlicher Bestandteil dieser Herausforderung. Nehmen wir an, Sie haben ein Objekt mit Gegenständen (Masse, Wert) wie [4,3],[-1,-1]
und eine Tasche mit einer Kapazität von 15. Sie könnten 3 der ersten setzen und 9 Punkte erzielen oder 4 der ersten und eine der -1, -1 Objekt für eine Punktzahl von 11.
quelle
Antworten:
Pyth, 18 Bytes
Gibt als Liste von [Wert, Gewicht] -Paaren aus. Schrecklich ineffizient, aber es ist NP-vollständig.
Probieren Sie es hier aus
Erläuterung
quelle