Recently, I learnt about DP and started solving problems related to it. When I know the problem is on DP and then when I solve the question, I am surely able to find the recurrence relation, but when not specified, I am finding it difficult to identify whether the problem is on DP or not. How to distinguish whether a problem is on DP or greedy or ad hoc? And can somebody also provide links of good problems involving DP.