which of the following is true about dynamic programming? a. a dynamic programming solution for calculating the n th fibonacci number can be implemented with o(1) additional memory b. dynamic programming is mainly useful for problems with disjoint subproblems c. a bottom-up dp solution to a problem will always use the same amount of stack space as a top-down solution to the same problem d. a top-down dp solution to a problem will always calculate every single subprob- lem.