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

מתוך testwiki
גרסה מ־19:14, 11 באוגוסט 2008 מאת imported>Atavory
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)
קפיצה לניווט קפיצה לחיפוש

ברצוננו להדפיס פסקת טקסט בצורה יפה.

נתונות לנו n מילים, תבנית:קוד בשורה. עלינו להחליט היכן לסיים כל שורה בפסקה, לפי הכללים הבאים:

  1. בכל שורת טקסט יש מקום לM תווים (אין מילה בעלת יותר מM תווים).
  2. יש להדפיס רווח יחיד בין כל שתי מילים באותה שורה.



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


אם בשורה יש m תווים (כולל הרווחים בין המילים), אז יופי השורה הוא 1(Mm+1)2. יופי הפסקה מוגדר כסכום היופי של השורות שלו, למעט השורה האחרונה.



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


אנא מצא אלגוריתם יעיל למציאת הפסקה היפה ביותר. הנח שn הוא משתנה גלובלי נתון, ושקיימת פונקציה תבנית:קוד בשורה המקבלת מספר i ומחזירה את מספר התווים במילה הi.