Skip to content

Latest commit

 

History

History
87 lines (83 loc) · 2.47 KB

File metadata and controls

87 lines (83 loc) · 2.47 KB

List of dynamic programming (DP) topics in competitive programming, organized from basic to advanced:

Basic Dynamic Programming Concepts:

  1. Introduction to Dynamic Programming
    • Top-Down (Memoization)
    • Bottom-Up (Tabulation)
  2. Basic DP Problems
    • Fibonacci Numbers
    • Factorial Calculation
    • Minimum/Maximum Path Sum

Intermediate Dynamic Programming Problems:

  1. 1D DP Problems
    • Coin Change Problem
    • Longest Increasing Subsequence (LIS)
    • Longest Decreasing Subsequence
    • Longest Common Subsequence (LCS)
    • Edit Distance
    • Rod Cutting Problem
    • Integer Partition
    • Subset Sum Problem
  2. 2D DP Problems
    • 0/1 Knapsack Problem
    • Unbounded Knapsack Problem
    • Matrix Chain Multiplication
    • Grid Unique Paths
    • Minimum Path Sum in Grid
  3. String DP Problems
    • Palindromic Substrings
    • Palindrome Partitioning
    • Longest Palindromic Subsequence
  4. Interval DP
    • Matrix Chain Multiplication
    • Stone Game
    • Optimal BST
  5. DP with Bitmasking
    • Traveling Salesman Problem (TSP)
    • Assignments Problem
  6. Digit DP
    • Count Numbers with Specific Properties

Advanced Dynamic Programming Techniques:

  1. DP on Trees
    • Tree Diameter
    • Tree DP
    • Subtree Sizes
    • Heavy-Light Decomposition
  2. DP with Two Pointers
    • Maximum Subarray Sum
    • Sliding Window Problems
  3. Range DP
    • Building Bridges
    • Maximum Sum Increasing Subsequence
  4. DP with Divide and Conquer Optimization
    • Knuth’s Optimization
    • Convex Hull Trick
  5. DP with Monotonic Queue/Deque
    • Monotonic Queue Optimization
  6. Bitwise Manipulation in DP
    • Subset Generation
  7. Inclusion-Exclusion Principle
    • Subset Counting
  8. SOS DP (Sum Over Subsets DP)
    • Fast Subset Convolution
  9. DP on Graphs
    • Shortest Paths (Floyd-Warshall)
    • Independent Set on Trees
    • Path Counting
  10. DP with Matrix Exponentiation
    • Fibonacci Sequence
    • Linear Recurrences
  11. Game Theory and DP
    • Grundy Numbers
    • Nim Game
  12. DP with Persistent Data Structures
    • Persistent Segment Trees

Specialized and Hybrid Techniques:

  1. Bitmasks and DP for Subset Problems
    • Counting Hamiltonian Paths
  2. Dynamic Connectivity in DP
  3. Exponential DP
    • Inclusion-Exclusion on DP States
  4. Multidimensional DP
    • Problems Involving Multiple States
  5. DP with Suffix Trees/Arrays
    • Text Processing Problems