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 734 / 767 800
Buying tickets 504 / 512 800
Reading 2 485 / 522 800
Longest increasing subsequence 622 / 633 900
Jealousy 453 / 542 900
Maximum path 2 542 / 546 1000
Fences painting 294 / 339 1000
Hall 264 / 311 1000
Knapsack 2 477 / 496 1100
Longest common subsequence 431 / 445 1100
Yet another build array problem 285 / 302 1100
Rectangle cutting 289 / 314 1100
Palindrome query 320 / 327 1100
Marisa 229 / 241 1100
Merging elements 247 / 284 1200
Brewing potion 8 205 / 217 1200