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 1082 / 1111 800
Buying tickets 826 / 837 800
Reading 2 707 / 761 800
Longest increasing subsequence 899 / 916 900
Jealousy 646 / 751 900
Maximum path 2 757 / 769 1000
Fences painting 460 / 520 1000
Hall 413 / 483 1000
Knapsack 2 671 / 703 1100
Longest common subsequence 593 / 606 1100
Yet another build array problem 408 / 439 1100
Rectangle cutting 417 / 458 1100
Palindrome query 477 / 490 1100
Marisa 389 / 409 1100
Merging elements 370 / 422 1200
Brewing potion 8 324 / 339 1200