 Homework 21Comments
 Most problems are found in one of the following:
 ADM: The Algorithm Design Manual
 IDMA: An Introduction to Discrete Mathematics and Algorithms
 For full credit, provide context for each problem, show all calculations,
and justify all answers by providing enough comments to explain your reasoning.
 You will lose a significant amount of credit if you do not provide context,
calculations, and justifications for a problem.
 Numbers and/or algebra by themselves are not enough.
A correct answer with no justification will be worth no more than half credit,
and sometimes much less than that.
 Precision is very important. You cannot skip steps, make guesses,
or use flawed logic. Any of these things can lead to incorrect answers.
 Homework assignments must be very neatly written or typeset
(e.g. using Word or OpenOffice).
 You must indicate any assistance/collaboration you had on an assignment as
specified on the Policies page.
 NEW! If a problem asks for an algorithm,
you should give the most efficient algorithm you can find to ensure full credit.
You should also specify the complexity of the algorithm with justification,
whether or not the problem asks for it.
DetailsProblem


A
 8.5
 Pick one: 810, 816c, 817, 825

Problem A:
Problem 810 suggests giving an algorithm that runs in O(nM) time. Is that a polynomialtime algorithm with respect to the size of the input? Explain. (Hint: The input consists of n integers, so let's use n as the
size of the input. Now you just need to think about what M can be.)
Note: When giving a dynamic programming algorithm, give a recursive formula and specify how the values will be computed to yield an efficient algorithm.
