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 1435 / 1466 800
Buying tickets 1136 / 1152 800
Reading 2 961 / 1020 800
Longest increasing subsequence 1173 / 1190 900
Jealousy 836 / 962 900
Maximum path 2 1005 / 1016 1000
Fences painting 637 / 703 1000
Hall 570 / 650 1000
Knapsack 2 855 / 897 1100
Longest common subsequence 770 / 789 1100
Yet another build array problem 535 / 570 1100
Rectangle cutting 542 / 592 1100
Palindrome query 630 / 651 1100
Marisa 530 / 553 1100
Merging elements 480 / 546 1200
Brewing potion 8 422 / 442 1200