Since you’re referring to the last category with the word “advanced” then maybe we should put that at the end of our list.

DP is mainly based on the idea that you don’t want to repeat calculations and instead memorise the results at each relevant stage. Now all you need is an exposure to lots of classic DP problems and approaches of solving them to help you break down any problem based on DP. To be fluid at designing these strategies you need to practice a lot.

There are many DP problems where you might have to form what’s called a state space tree. Your second category deals with trees. So you need to know about trees for understanding DP even better.

So:

- tree basics
- DP basics
- advanced stuff

Once you feel confident with the first two, you may start with problems which deal with DP on trees and other such problems that belong to mixed categories.

Hope this was helpful.