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 989 / 1024 800
Buying tickets 736 / 747 800
Reading 2 638 / 692 800
Longest increasing subsequence 813 / 829 900
Jealousy 598 / 692 900
Maximum path 2 688 / 698 1000
Fences painting 414 / 476 1000
Hall 374 / 437 1000
Knapsack 2 606 / 635 1100
Longest common subsequence 551 / 563 1100
Yet another build array problem 377 / 407 1100
Rectangle cutting 382 / 420 1100
Palindrome query 429 / 440 1100
Marisa 352 / 372 1100
Merging elements 344 / 394 1200
Brewing potion 8 292 / 307 1200