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 1483 / 1515 800
Buying tickets 1174 / 1190 800
Reading 2 989 / 1047 800
Longest increasing subsequence 1213 / 1230 900
Jealousy 859 / 984 900
Maximum path 2 1038 / 1049 1000
Fences painting 661 / 730 1000
Hall 591 / 673 1000
Knapsack 2 881 / 920 1100
Longest common subsequence 790 / 809 1100
Yet another build array problem 553 / 588 1100
Rectangle cutting 558 / 609 1100
Palindrome query 647 / 670 1100
Marisa 547 / 569 1100
Merging elements 499 / 568 1200
Brewing potion 8 439 / 459 1200