I am generally unable to identify and apply the Dynamic Programming technique correctly in questions in any running competition as well as in practice too. Can someone tell some resource which can help me to study the topic in a well-ordered way (starting from basics to advanced level).

Will be really thankful!

Go through codeforces blogs on dynamic programming

4 Likes

STEP 1:Learn recursion.You can practice trees ,backtracking problems to master recursion.

STEP 2:first learn to write a brute force recursive definition for dp problem and then try to apply memoization before tabulation.

STEP 3:Now try to understand how can you build small subproblems to finally solve a bigger subproblem.For example:-

If you have to find number of ways to make a sum of 10 using {1,2,3}

Think like this:-

Assume a function that returns the total number of ways : count(int sum,int arr[])

if you could know the total number of ways to form count(9,arr) you can use that information to make a sum of 10 easily.

total_ways=count(9,arr)+(1,arr);

And do watch this video.

Thansk bro