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 1838 / 1875 800
Buying tickets 1513 / 1531 800
Reading 2 1242 / 1308 800
Longest increasing subsequence 1510 / 1528 900
Jealousy 1093 / 1229 900
Maximum path 2 1297 / 1311 1000
Fences painting 892 / 960 1000
Hall 785 / 876 1000
Knapsack 2 1095 / 1142 1100
Longest common subsequence 980 / 1000 1100
Yet another build array problem 693 / 732 1100
Rectangle cutting 684 / 743 1100
Palindrome query 795 / 823 1100
Marisa 665 / 689 1100
Merging elements 633 / 710 1200
Brewing potion 8 565 / 588 1200