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 1212 / 1242 800
Buying tickets 940 / 953 800
Reading 2 789 / 854 800
Longest increasing subsequence 990 / 1007 900
Jealousy 700 / 812 900
Maximum path 2 838 / 850 1000
Fences painting 511 / 572 1000
Hall 470 / 543 1000
Knapsack 2 732 / 769 1100
Longest common subsequence 649 / 663 1100
Yet another build array problem 446 / 477 1100
Rectangle cutting 458 / 502 1100
Palindrome query 530 / 547 1100
Marisa 428 / 453 1100
Merging elements 401 / 463 1200
Brewing potion 8 350 / 367 1200