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 1554 / 1588 800
Buying tickets 1247 / 1265 800
Reading 2 1041 / 1104 800
Longest increasing subsequence 1274 / 1290 900
Jealousy 907 / 1034 900
Maximum path 2 1092 / 1103 1000
Fences painting 701 / 772 1000
Hall 631 / 713 1000
Knapsack 2 920 / 956 1100
Longest common subsequence 825 / 845 1100
Yet another build array problem 579 / 617 1100
Rectangle cutting 580 / 634 1100
Palindrome query 674 / 698 1100
Marisa 571 / 593 1100
Merging elements 522 / 594 1200
Brewing potion 8 465 / 484 1200