Solution:The running time of dynamic programming algorithm is always θ
(ρ) where P is number of sub problems. This statement is incorrect running time for dynamic algorithms is the number of sub-problems multiplies with time for each sub-problem. It means running time of dynamic programming algorithms is O(1).
(b) When a recurrence relation has cyclic dependency it is impossible to use that recurrence relation (unmodified) in a correct dynamic program. Cyclic dependency is relation between two or more modules which depends on each other indirectly or directly, these are mutually recursive. So, given statement is correct.
(c) For a dynamic programming algorithms, computing all values in a bottom up fashion is asymptotically faster than using recursion and memorization. This statement is incorrect for a dynamic programming algorithm, computing all values using recursion and memorization takes less time than computing in bottom up fashion.
(d) If a problem X can be reduced to known NP-hard problem, then X must be NP hard.
If a problem X can be reduced to a known NP hard problem, then X must be NP complete not NP hard. So given statement is incorrect.