Introduction to Algorithms
3rd Edition
ISBN: 9780262033848
Author: Thomas H. Cormen, Ronald L. Rivest, Charles E. Leiserson, Clifford Stein
Publisher: MIT Press
expand_more
expand_more
format_list_bulleted
Question
Chapter 16.2, Problem 2E
Program Plan Intro
To give a dynamic-
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Apply the bottom-up dynamic programming algorithm to the followinginstance of the knapsack problem:
Item
Weight
Value
1
3
$25
2
2
$30
3
1
$15
4
4
$40
5
5
$50
Capacity W = 8.
Consider the problem of making change for n cents using the fewest number of coins. Assume that we live in a country where coins come in k dierent denominations c1, c2, . . . , ck, such that the coin values are positive integers, k ≥ 1, and c1 = 1, i.e., there are pennies, so there is a solution for every value of n. For example, in case of the US coins, k = 4, c1 = 1, c2 = 5, c3 = 10, c4 = 25, i.e., there are pennies, nickels, dimes, and quarters. To give optimal change in the US for n cents, it is sufficient to pick as many quarters as possible, then as many dimes as possible, then as many nickels as possible, and nally give the rest in pennies.
Design a bottom-up (non-recursive) O(nk)-time algorithm that makes change for any set of k different coin denominations. Write down the pseudocode and analyze its running time. Argue why your choice of the array and the order in which you fill in the values is the correct one. Notice how it is a lot easier to analyze the running time of…
Consider the problem of making change for n cents using the fewest number of coins. Assume that we live in a country where coins come in k dierent denominations c1, c2, . . . , ck, such that the coin values are positive integers, k ≥ 1, and c1 = 1, i.e., there are pennies, so there is a solution for every value of n. For example, in case of the US coins, k = 4, c1 = 1, c2 = 5, c3 = 10, c4 = 25, i.e., there are pennies, nickels, dimes, and quarters. To give optimal change in the US for n cents, it is sufficient to pick as many quarters as possible, then as many dimes as possible, then as many nickels as possible, and nally give the rest in pennies.
Design a bottom-up (non-recursive) O(nk)-time algorithm that makes change for any set of k different coin denominations. Write down the pseudocode and analyze its running time. Argue why your choice of the array and the order in which you ll in the values is the correct one.
Chapter 16 Solutions
Introduction to Algorithms
Ch. 16.1 - Prob. 1ECh. 16.1 - Prob. 2ECh. 16.1 - Prob. 3ECh. 16.1 - Prob. 4ECh. 16.1 - Prob. 5ECh. 16.2 - Prob. 1ECh. 16.2 - Prob. 2ECh. 16.2 - Prob. 3ECh. 16.2 - Prob. 4ECh. 16.2 - Prob. 5E
Ch. 16.2 - Prob. 6ECh. 16.2 - Prob. 7ECh. 16.3 - Prob. 1ECh. 16.3 - Prob. 2ECh. 16.3 - Prob. 3ECh. 16.3 - Prob. 4ECh. 16.3 - Prob. 5ECh. 16.3 - Prob. 6ECh. 16.3 - Prob. 7ECh. 16.3 - Prob. 8ECh. 16.3 - Prob. 9ECh. 16.4 - Prob. 1ECh. 16.4 - Prob. 2ECh. 16.4 - Prob. 3ECh. 16.4 - Prob. 4ECh. 16.4 - Prob. 5ECh. 16.5 - Prob. 1ECh. 16.5 - Prob. 2ECh. 16 - Prob. 1PCh. 16 - Prob. 2PCh. 16 - Prob. 3PCh. 16 - Prob. 4PCh. 16 - Prob. 5P
Knowledge Booster
Similar questions
- Consider the problem of making change for n cents using the fewest number of coins. Assume that we live in a country where coins come in k dierent denominations c1, c2, . . . , ck, such that the coin values are positive integers, k ≥ 1, and c1 = 1, i.e., there are pennies, so there is a solution for every value of n. For example, in case of the US coins, k = 4, c1 = 1, c2 = 5, c3 = 10, c4 = 25, i.e., there are pennies, nickels, dimes, and quarters. To give optimal change in the US for n cents, it is sufficient to pick as many quarters as possible, then as many dimes as possible, then as many nickels as possible, and nally give the rest in pennies. Prove that the coin changing problem exhibits optimal substructure. Design a recursive backtracking (brute-force) algorithm that returns the minimum number of coins needed to make change for n cents for any set of k different coin denominations. Write down the pseudocode and prove that your algorithm is correct.arrow_forwardimplement program to Finding the Longest Common Substringproblem that lends itself to a dynamic programming solution is finding the longest common substring in two strings. For example, in the words “raven” and “havoc”, the longest common substring is “av”.arrow_forward1. Consider the following dynamic programming implementation of the Knapsack problem: #include int find_max(int a, int b) { if(a > b) return a; return b; } int knapsack(int W, int *wt, int *val,int n) { int ans[n + 1][W + 1]; int itm,w; for(itm = 0; itm <= n; itm++) ans[itm][0] = 0; for(w = 0;w <= W; w++) ans[0][w] = 0; for(itm = 1; itm <= n; itm++) { for(w = 1; w <= W; w++) { if(wt[itm - 1] <= w) ans[itm][w] = ______________; else ans[itm][w] = ans[itm - 1][w]; } } return ans[n][W]; } int main() { int w[] = {10,20,30}, v[] = {60, 100, 120}, W = 50; int ans = knapsack(W, w, v, 3); printf("%d",ans); return 0; } Which of the following lines completes the above code? A. find_max(ans[itm – 1][w – wt[itm – 1]] + val[itm – 1], ans[itm – 1][w]) B. find_max(ans[itm – 1][w –…arrow_forward
- Design a dynamic programming algorithm for the following problem. Find the maximum total sale price that can be obtained by cutting a rod of $n$ units long into integer-length pieces if the sale price of a piece $i$ units long is $p_i$ for $i = 1, 2, . . . , n$. What are the time and space efficiencies of your algorithm?arrow_forwardFind minimally sized weak and strong backdoors of the following SAT instance for a sub-solverthat only applies unit propagationϕ =∧(w ∨ ¬x ∨ z) ∧ (¬w ∨ z) ∧ (x ∨ y ∨ z) ∧ (w ∨ ¬y)∧ (w ∨ z) ∧ (¬w ∨ ¬y ∨ ¬z) ∧ (¬x ∨ y)arrow_forwardGiven a set of n positive integers, C = {c1,c2, ..., cn} and a positive integer K, is there a subset of C whose elements sum to K? A dynamic program for solving this problem uses a 2-dimensional Boolean table T, with n rows and k + 1 columns. T[i,j] 1≤ i ≤ n, 0 ≤ j ≤ K, is TRUE if and only if there is a subset of C = {c1,c2, ..., ci} whose elements sum to j. Which of the following is valid for 2 ≤ i ≤ n, ci ≤ j ≤ K? a) T[i, j] = ( T[i − 1, j] or T[i, j − ci]) b) T[i, j] = ( T[i − 1, j] and T[i, j − ci ]) c) T[i, j] = ( T[i − 1, j] or T[i − 1, j − ci ]) d) T[i, j] = ( T[i − 1, j] and T[i − 1, j − cj ]) In the above problem, which entry of the table T, if TRUE, implies that there is a subset whose elements sum to K? a) T[1, K + 1] b) T[n, K] c) T[n, 0] d) T[n, K + 1]arrow_forward
- Given a set of n positive integers, C = {c1,c2, ..., cn} and a positive integer K, is there a subset of C whose elements sum to K? A dynamic program for solving this problem uses a 2-dimensional Boolean table T, with n rows and k + 1 columns. T[i,j] 1≤ i ≤ n, 0 ≤ j ≤ K, is TRUE if and only if there is a subset of C = {c1,c2, ..., ci} whose elements sum to j. Which of the following is valid for 2 ≤ i ≤ n, ci ≤ j ≤ K? a) ?[?, ?] = ( ?[? − 1, ?] ?? ?[?, ? − ?? ]) b) ?[?, ?] = ( ?[? − 1, ?] ??? ?[?, ? − ?? ]) c) ?[?, ?] = ( ?[? − 1, ?] ?? ?[? − 1, ? − ?? ]) d) ?[?, ?] = ( ?[? − 1, ?] ??? ?[? − 1, ? − ?? ]) In the above problem, which entry of the table T, if TRUE, implies that there is a subset whose elements sum to K? a) ?[1, ? + 1] b) ?[?, ?] c) ?[?, 0] d) ?[?, ? + 1]arrow_forwardWrite a recurrence that would be used in dynamic programming for thefollowing problem: Given a rod of length n and an array A of prices thatcontain all prices of all the pieces smaller than n. Determine the maximumvalue obtained by cutting up the rod and selling the pieces. Note that youcould sell the rod at its original length without cutting it.arrow_forwardLet P2(x) be the least squares interpolating polynomial for f(x) := sin(πx) on the interval [0,1] (with weight function w(x) = 1). Determine nodes (x0,x1,x2) for the second-order Lagrange interpolating polynomial Pˆ2(x) so that P2 = Pˆ2. You are welcome to proceed theoretically or numerically using Python.arrow_forward
- For a given mathematical model, which gives merely a representation of the real situation, there exists an optimum solution. O Yes/No/True/Falsearrow_forward1. Consider an impulse response h[n] such that h[n] = 0 for n < 0 and n > M, and h[n] =−h[M − n] for 0 ≤ n ≤ M where M is an odd integer.a) Express the Fourier transform of h[n] in the formH(ejω) = ejf(ω)A(ω) ,where f(ω) and A(ω) are real-valued functions of ω. Determine f(ω) and A(ω).b) Provide an example of such an impulse response h[n] for M = 7 and find the corresponding f(ω) and A(ω).arrow_forward4. Describe a dynamic programming approach for a modified knapsack problem in which up to 3 copies of each of the n items can be selectedarrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Operations Research : Applications and AlgorithmsComputer ScienceISBN:9780534380588Author:Wayne L. WinstonPublisher:Brooks Cole
Operations Research : Applications and Algorithms
Computer Science
ISBN:9780534380588
Author:Wayne L. Winston
Publisher:Brooks Cole