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 1995 / 2035 800
Buying tickets 1647 / 1668 800
Reading 2 1342 / 1410 800
Longest increasing subsequence 1639 / 1667 900
Jealousy 1178 / 1314 900
Maximum path 2 1402 / 1418 1000
Fences painting 976 / 1046 1000
Hall 859 / 954 1000
Knapsack 2 1181 / 1236 1100
Longest common subsequence 1055 / 1076 1100
Yet another build array problem 750 / 788 1100
Rectangle cutting 739 / 803 1100
Palindrome query 850 / 878 1100
Marisa 708 / 735 1100
Merging elements 680 / 760 1200
Brewing potion 8 625 / 647 1200