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 1408 / 1439 800
Buying tickets 1114 / 1130 800
Reading 2 938 / 998 800
Longest increasing subsequence 1155 / 1171 900
Jealousy 818 / 946 900
Maximum path 2 989 / 1000 1000
Fences painting 618 / 685 1000
Hall 555 / 634 1000
Knapsack 2 839 / 881 1100
Longest common subsequence 753 / 771 1100
Yet another build array problem 522 / 557 1100
Rectangle cutting 531 / 579 1100
Palindrome query 613 / 633 1100
Marisa 515 / 537 1100
Merging elements 468 / 535 1200
Brewing potion 8 413 / 432 1200