report VI VI EN
Register | Login
  • HOME
  • PROBLEMSET
  • ROADMAP
  • COMPETITION
  • TOPIC
  • RANKING
  • GUIDE
  • MASHUP
  • ABOUT
  • CONTACT
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 2367 / 2412 800
Buying tickets 1982 / 2002 800
Reading 2 1602 / 1677 800
Longest increasing subsequence 1945 / 1973 900
Jealousy 1413 / 1558 900
Maximum path 2 1657 / 1673 1000
Fences painting 1187 / 1265 1000
Hall 1038 / 1142 1000
Knapsack 2 1414 / 1476 1100
Longest common subsequence 1271 / 1293 1100
Yet another build array problem 896 / 935 1100
Rectangle cutting 889 / 953 1100
Palindrome query 1021 / 1049 1100
Marisa 845 / 873 1100
Merging elements 809 / 899 1200
Brewing potion 8 749 / 770 1200

Graph

  • BFS / DFS

Tree

  • Introduction to tree

Data structure

  • Disjoint Set Union (DSU)

Dynamic Programming

  • Introduction to dynamic programming
  • Introduction to Dynamic Programming (Part two)
  • DP on tree

String

  • String matching - Hash

Bitmasks

  • Bitwise operations