Dynamic Programming (DP) is the technique of solving each subproblem only once and storing the result. The name is historical — Richard Bellman coined it in the 1950s, partly to make it sound ...