Problem

*Consider the problem of right-justifying a paragraph. The paragraph contains a sequence o...

*Consider the problem of right-justifying a paragraph. The paragraph contains a sequence of words w1, w2,…, wN of length a1, a2,…, aN, which we wish to break into lines of length L. Words are separated by blanks whose ideal length is b (millimeters), but blanks can stretch or shrink as necessary (but must be >0), so that a line wiwi+1wj has length exactly L. However, for each blank b′ we charge |b′ − b| ugliness points. The exception to this is the last line, for which we charge only if b′ < b (in other words, we charge only for shrinking), since the last line does not need to be justified. Thus, if bi is the length of the blank between ai and ai+1, then the ugliness of setting any line (but the last) wiwi+1wj for j > i is , where b′ is the average size of a blank on this line. This is true of the last line only if b′ < b, otherwise the last line is not ugly at all.

a. Give a dynamic programming algorithm to find the least ugly setting of w1, w2,…, wN into lines of length L. (Hint: For i = N, N − 1,…, 1, compute the best way to set wi, wi+1, . . . , wN.)


b. Give the time and space complexities for your algorithm (as a function of the number of words, N).


c. Consider the special case where we are using a fixed-width font, and assume the optimal value of b is 1 (space). In this case, no shrinking of blanks is allowed, since the next smallest blank space would be 0. Give a linear-time algorithm to generate the least ugly setting for this case.

Step-by-Step Solution

Request Professional Solution

Request Solution!

We need at least 10 more requests to produce the solution.

0 / 10 have requested this problem solution

The more requests, the faster the answer.

Request! (Login Required)


All students who have requested the solution will be notified once they are available.
Add your Solution
Textbook Solutions and Answers Search
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT