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 526 / 549 800
Buying tickets 302 / 308 800
Reading 2 325 / 350 800
Longest increasing subsequence 448 / 455 900
Jealousy 306 / 374 900
Maximum path 2 400 / 403 1000
Fences painting 166 / 193 1000
Hall 161 / 189 1000
Knapsack 2 360 / 376 1100
Longest common subsequence 321 / 327 1100
Yet another build array problem 189 / 202 1100
Rectangle cutting 204 / 220 1100
Palindrome query 222 / 227 1100
Marisa 143 / 150 1100
Merging elements 179 / 206 1200
Brewing potion 8 145 / 154 1200