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 1544 / 1577 800
Buying tickets 1238 / 1256 800
Reading 2 1032 / 1093 800
Longest increasing subsequence 1262 / 1279 900
Jealousy 899 / 1028 900
Maximum path 2 1083 / 1094 1000
Fences painting 693 / 764 1000
Hall 621 / 704 1000
Knapsack 2 911 / 947 1100
Longest common subsequence 820 / 840 1100
Yet another build array problem 576 / 612 1100
Rectangle cutting 577 / 630 1100
Palindrome query 669 / 693 1100
Marisa 568 / 590 1100
Merging elements 518 / 589 1200
Brewing potion 8 461 / 480 1200