Hi CF community,

I am glad to see that there are increasing number of tutorial posts on Codeforces.

I had been making video for problem solving, data structures, algorithms for a while now on my YouTube channel and I want to share a good lecture series here on "Dynamic Programming on Trees".

I have covered problems like -

- **Easy DP:** Find the size of every node's subtree in a rooted Tree.

- **Medium In/Out DP:** Find the height of the tree for all scenarios where every node is considered root of the tree one by one.

- **Hard DP:** Binary Lifting on Trees (LCA, etc)

If you are beginner in Dynamic Programming, I would recommend you to watch this playlist "Dynamic Programming: From Zero to Hero" first.

In this lecture series, I have tried my best to explain three types of DP techniques you can apply on Trees. This covers most of the problems that we see in Software Interviews and Competitive Programming. There are more techniques, but I am not sure when I will be able to make videos for them.

I hope beginners find this useful. I would really like the feedback.

Happy Coding!