My College Blog

算法:动态规划

发布日期:2025-03-12
动态规划是一种通过将复杂问题分解为重叠子问题并存储子问题解来优化求解的算法思想。核心是定义状态和状态转移方程。经典问题包括0-1背包问题(给定容量,选择物品使价值最大),其状态转移方程为dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] + v[i]);最长公共子序列(LCS)问题,dp[i][j]表示字符串a前i个和b前j个的LCS长度,若a[i]==b[j]则dp[i][j]=dp[i-1][j-1]+1,否则取max(dp[i-1][j], dp[i][j-1])。掌握动态规划需要大量练习,理解状态定义和转移逻辑是关键。
算法:动态规划