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 1457 / 1488 800
Buying tickets 1154 / 1170 800
Reading 2 973 / 1030 800
Longest increasing subsequence 1191 / 1208 900
Jealousy 849 / 974 900
Maximum path 2 1021 / 1032 1000
Fences painting 648 / 715 1000
Hall 582 / 662 1000
Knapsack 2 868 / 908 1100
Longest common subsequence 781 / 800 1100
Yet another build array problem 545 / 580 1100
Rectangle cutting 549 / 600 1100
Palindrome query 640 / 662 1100
Marisa 539 / 561 1100
Merging elements 489 / 558 1200
Brewing potion 8 430 / 450 1200