Recently, I have been exposed to Digit DP SPOJ Problems, then I realized that yes, there is a wide range of problems that can be solved using the different dynamic programming approaches. When I first encounter the problem Help Bob, I was totally clueless that how I approach that problem. Then a friend (nishant403) told me to learn the concept of Digit DP. After searching a lot get some insights into it.

There are a lot more techniques like this that are there. I need help to get the whole set of DP Techniques that can be used for Competitive Programming and tutorial related to that with the practice problems that a beginner needs to solve in order to be the tourist of DP. I also need help to determine the specific order in which one needs to learn these techniques that increase the difficulty gradually.

Here are some of the posts that I found related to Dynamic Programming.

General DP:

1. Everything About Dynamic Programming.

2. DP Tutorial and Problem List.

DP on Trees and Rerooting:

1. DP on Trees Tutorial.

2. Online Query Based Rerooting Technique.

Digit DP:

1. Digit DP.

2. DIGIT DP Tutorial [ITERATIVE].

3. Digit Dp + Matrix Chain Multiplication.

DP with Bitmasking:

1. Introduction to DP with Bitmasking.

As of now, these are the list of articles that I found on codeforces. I will keep updating the list of articles. Hope for great support. Thanks a lot to all of them who have written these useful articles that enhance the knowledge.

Thank You.