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 2027 / 2066 800
Buying tickets 1677 / 1698 800
Reading 2 1369 / 1438 800
Longest increasing subsequence 1665 / 1692 900
Jealousy 1199 / 1336 900
Maximum path 2 1423 / 1437 1000
Fences painting 995 / 1066 1000
Hall 875 / 971 1000
Knapsack 2 1199 / 1256 1100
Longest common subsequence 1075 / 1096 1100
Yet another build array problem 766 / 803 1100
Rectangle cutting 758 / 820 1100
Palindrome query 872 / 899 1100
Marisa 721 / 748 1100
Merging elements 694 / 774 1200
Brewing potion 8 636 / 658 1200