+ - ปัญหาเครื่องหลัง


9

กำหนดชุดของรายการแต่ละรายการที่มีน้ำหนักและค่ากำหนดจำนวนของแต่ละรายการเพื่อรวมไว้ในคอลเลกชันเพื่อให้น้ำหนักรวมน้อยกว่าหรือเท่ากับขีด จำกัด ที่กำหนดและมูลค่ารวมมีขนาดใหญ่ที่สุด

Wikipedia สำหรับข้อมูลเพิ่มเติม

ตัวอย่างเช่นคุณสามารถรับน้ำหนักสูงสุด 15 และวัตถุที่มีค่า / มวลเป็น[5,2], [7,4] [1,1]และคุณจะออก[7,0,1]ซึ่งเป็น[5 <value>, 2 <mass>]วัตถุ7 และ 1 [1 <value>, 1 <mass>]วัตถุสำหรับคะแนน 36

กฎระเบียบ

สามารถป้อนข้อมูลในรูปแบบที่เหมาะสม

เอาท์พุทเป็นรูปแบบที่ยืดหยุ่น

คุณไม่สามารถใช้ไลบรารีที่ไม่ได้มาตรฐาน หากคุณต้องติดตั้งหรือดาวน์โหลดไลบรารีใด ๆ เพื่อใช้แยกต่างหากจากการตั้งค่าเริ่มต้นจะไม่ได้รับอนุญาต

วัตถุอาจมีมวลและค่าลบ (เช่น -1, -1)

ต้องการคำตอบที่เหมาะสมที่สุด

การชนะ

รหัสที่สั้นที่สุดชนะ

มวลเชิงลบและคุณค่า

นี่เป็นส่วนสำคัญของความท้าทายนี้ ให้บอกว่าคุณมีวัตถุที่มีไอเท็ม (มวล, ค่า) เช่น[4,3],[-1,-1]และกระเป๋าที่มีความจุ 15 คุณสามารถใส่ 3 ของชิ้นแรกและคะแนน 9 หรือใส่ 4 ของชิ้นแรกและหนึ่งใน -1, -1 วัตถุสำหรับคะแนน 11



เราสามารถสันนิษฐานได้ว่าไม่มีวัตถุใดที่จะมีมวลไม่เป็นบวกหรือไม่?
HyperNeutrino

@HyperNeutrino ลบการแก้ไขหนึ่งวินาที
Christopher

2
เราสามารถสมมติว่าทุกอย่างเป็นจำนวนเต็มได้หรือไม่? นอกจากนี้เราจะต้องจัดการกับกรณีเช่น [[2, 1], [-1, -1]] ซึ่งมูลค่าทั้งหมดสามารถทำให้ใหญ่โดยพลการได้หรือไม่?

5
ชื่อเรื่องนั้นทำให้เข้าใจผิด เนื่องจากน้ำหนักเชิงลบนี่ไม่ใช่ปัญหาเป้ แต่เป็นการเปลี่ยนแปลงในปัญหาการเขียนโปรแกรมเชิงเส้น
ngn

คำตอบ:


2

Pyth, 18 ไบต์

h.MshMZfghQseMTy*F

เอาต์พุตเป็นรายการของคู่ [ค่า, น้ำหนัก] ไม่มีประสิทธิภาพที่น่ากลัว แต่มันเป็นปัญหาที่สมบูรณ์
ลองที่นี่

คำอธิบาย

h.MshMZfghQseMTy*F
               y*FQ  Get all sets with up to <capacity> of each item.
       fghQseMT      Choose the sets whose total weight fits in the bag.
 .MshMZ              Choose those with the highest value.
h                    Take the first.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.