מבני נתונים ואלגוריתמים - מחברת קורס/אלגוריתמים/תכנון דינאמי/תרגילים/חיתוך בד/שאלה

מתוך testwiki
קפיצה לניווט קפיצה לחיפוש

נתונה פיסת בד שמידותיה (n,m) (כלומר ארכה n מטר, ורחבה m מטר). הנח שn וm מספרים שלמים.

נתונות k מידות, (n1,m1),...,(nk,mk), שלהן מותאמים מחירים p1,...,pk. כלומר:

  1. חתיכת בד במידה (n1,m1) שווה p1 שקלים.
  2. חתיכת בד במידה (n2,m2) שווה p2 שקלים.
  3. ...
  4. חתיכת בד במידה (nk,mk) שווה pk שקלים.חוץ מk מידות אלה, כל המידות האחרות חסרות ביקוש, ולכן כל חתיכת בד במידה שונה

ממידות אלה שווה 0 שקלים. הנח שכל ni וmi הוא מספר שלם חיובי ממש.



תבנית:מבנה תבנית


המטרה היא להפיק מהבד את מרב הערך, ע"י גזירת הבד אם יש תועלת בכך. בכל גזירה אפשר מותר לגזור את פיסת הבד לאורך או לרוחב. הנח שאין יכולת לסובב את פיסת הבד.



תבנית:מבנה תבנית


בשאלה זו עליך למצוא אלגוריתם יעיל למציאת סדרת החיתוך הרווחית ביותר. אנא הוכח שהאלגוריתם שמצאת עובד בסיבוכיות O(nm(n+m)).

הנח שקיימת פונקציה תבנית:קוד בשורה המחזירה בזמן O(1):

  1. 0 אם (i,j) אינה אחת מk המידות בעלות התועלת.
  2. pk אם (i,j)=(nk,mk).

תבנית:הארה