Module Introduction to dynamic programming

Introduction to dynamic programming

**Frequency: 100/10** Dynamic programming (DP) is a crucial technique in Competitive Programming, with DP problems commonly appearing in various contests. While there is no definitive formula for solving DP problems, the good news is that they often exhibit common characteristics. By practicing your skills, you can develop the ability to quickly identify the DP state, a crucial step towards effectively tackling these problems.

Resources

- [Youtube Reducible: 5 Simple Steps for Solving Dynamic Programming Problems](https://www.youtube.com/watch?v=aPQY__2H3tE)

Problems

Hakurei Shrine 1982 / 2022 800
Buying tickets 1634 / 1655 800
Reading 2 1335 / 1402 800
Longest increasing subsequence 1632 / 1656 900
Jealousy 1172 / 1308 900
Maximum path 2 1394 / 1410 1000
Fences painting 969 / 1038 1000
Hall 854 / 948 1000
Knapsack 2 1175 / 1230 1100
Longest common subsequence 1048 / 1069 1100
Yet another build array problem 741 / 778 1100
Rectangle cutting 735 / 797 1100
Palindrome query 847 / 876 1100
Marisa 704 / 731 1100
Merging elements 678 / 758 1200
Brewing potion 8 616 / 638 1200