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 1582 / 1617 800
Buying tickets 1273 / 1291 800
Reading 2 1062 / 1125 800
Longest increasing subsequence 1302 / 1317 900
Jealousy 934 / 1060 900
Maximum path 2 1115 / 1127 1000
Fences painting 729 / 799 1000
Hall 650 / 733 1000
Knapsack 2 944 / 981 1100
Longest common subsequence 843 / 863 1100
Yet another build array problem 594 / 633 1100
Rectangle cutting 594 / 648 1100
Palindrome query 689 / 712 1100
Marisa 588 / 610 1100
Merging elements 538 / 609 1200
Brewing potion 8 480 / 499 1200