Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนรายการขั้นต่ำที่จะจัดส่งโดยใช้ C++


คำชี้แจงปัญหา

กำหนดขนาดอาร์เรย์ N แทนบัคเก็ต ดัชนีอาร์เรย์แต่ละรายการประกอบด้วยรายการ ให้ K ทัวร์ภายในซึ่งรายการทั้งหมดจะต้องจัดส่ง อนุญาตให้นำสิ่งของจากถังเดียวใน 1 ทัวร์ งานคือการบอกจำนวนขั้นต่ำของสินค้าที่ต้องจัดส่งต่อทัวร์ เพื่อให้สามารถจัดส่งรายการทั้งหมดภายใน K ทัวร์

หากมี 5 ถังพร้อมไอเทม ={1, 3, 5, 7, 9} และ 10 ทัวร์ เราก็สามารถจัดส่งได้ 3 รายการต่อทัวร์ โดยส่งครั้งละ 3 รายการ

  • ขนาดถังที่ 1 คือ 1 ดังนั้นจำนวนทัวร์ที่ต้องการ =1

  • ขนาดถังที่ 2 คือ 3 ดังนั้นจำนวนทัวร์ที่ต้องการ =1

  • ถังที่ 3 ขนาด 5 ดังนั้นจำนวนทัวร์ที่ต้องการ =2 (3 + 2 รายการต่อทัวร์)

  • ขนาดถังที่ 4 คือ 7 ดังนั้นจำนวนทัวร์ที่ต้องการ =3 (3 + 3 + 1 รายการต่อทัวร์)

  • ขนาดถังที่ 5 คือ 9 ดังนั้นจำนวนทัวร์ที่ต้องการ =3 (3 + 3 + 3 รายการต่อทัวร์)

จำนวนทัวร์ทั้งหมด =10

อัลกอริทึม

<ก่อน>1. ค้นหาจำนวนขั้นต่ำของรายการที่จะแจกจ่ายต่อการจัดส่ง2. วนซ้ำจาก 1 เป็นมูลค่าสูงสุดของสินค้าในที่เก็บข้อมูล และคำนวณจำนวนทัวร์ที่จำเป็นสำหรับแต่ละที่เก็บข้อมูล และหาจำนวนทัวร์ทั้งหมดสำหรับการจัดส่งที่สมบูรณ์3 ค่าดังกล่าวครั้งแรกที่มีทัวร์น้อยกว่าหรือเท่ากับ K ให้จำนวนที่ต้องการ

ตัวอย่าง

#include #include #include #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) โดยใช้เนมสเปซ std;int minItemsDelivered(int *arr, int n, int k) { int maxElement =INT_MIN; สำหรับ (int i =0; i