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 2042 / 2081 800
Buying tickets 1682 / 1703 800
Reading 2 1369 / 1438 800
Longest increasing subsequence 1671 / 1697 900
Jealousy 1205 / 1343 900
Maximum path 2 1428 / 1442 1000
Fences painting 998 / 1069 1000
Hall 881 / 978 1000
Knapsack 2 1209 / 1266 1100
Longest common subsequence 1081 / 1103 1100
Yet another build array problem 773 / 809 1100
Rectangle cutting 764 / 826 1100
Palindrome query 880 / 907 1100
Marisa 727 / 755 1100
Merging elements 695 / 775 1200
Brewing potion 8 640 / 662 1200