Dynamic Programming Problems Examples