2D DP (two-dimensional dynamic programming) solves problems where state depends on two dimensions, typically using a 2D table where dp[i][j] represents optimal value for subproblem involving first i elements of one sequence and first j of another. You use it for comparing or aligning two sequences. Common in string matching, path counting, and sequence comparison. Understanding these concepts deeply helps you solve related problems faster.
Take time to internalize the pattern.