Dynamic Programming Standard Problems.
Follow Standard DP Problems in the following order, you'll find almost all of them similar,
- 0/1 KnapSack Problem.
- Subset Sum Problem.
- Equal Sum Partition Problem.
- Count of Subset with given sum.
- Minimum Subset Sum Difference Problem.
- Count number of subsets sum with given difference.
- Target Sum Problem.(Same as 6).
- Unbounded KnapSack Problem.
- Rod Cutting Problem.
- Coin Change Problem(Max No of Ways).
- Coin Change Problem(Min No of Coins).
Some basic DP Problems based on Longest Common Subsequence(LCS) : Consider X and Y as two strings whose lengths are m & n respectively,
- Longest Common Subsequence(Length and printing it both)
- Shortest Common SuperSequence : It's nothing but SCS(X,Y) = (m+n-LCS(X,Y)). SCS means a shortest sequence containing both strings X & Y.
- Minimum No of Insertion & Deletion to convert A->B : Let m > n then, Delete Operations = m-LCS(X,Y) and Insert Operations = n-(LCS(X,Y).
- Longest Palindromic Subsequence : LPS(X) = LCS(X,reverse(X)).
- Minimum No of Deletions to make a string palindrome : Length of string - LPS(X).
- Printing SCS - Similar to printing LCS as discussed above with some minute code variations.
- Longest Repeating Subsequence : Here, the whole subsequence must repeat in the string. We just add a condition where current indexes shouldn't be equal. The code remains same as in LCS.
- Sequence Pattern Matching : Here, we just check if size of pattern equals LCS of both the strings.
The link below contains links to various DP Learning Resources, You Tube Tutorials, DP related Contests and various typed of DP Problems and link to solve them.
https://codeforces.com/blog/entry/67679