怎么创造一个网站,大秦wordpress付费阅读,织梦网站备份几种方法,用云空间制作网站DP
在C中#xff0c;动态规划#xff08;Dynamic Programming#xff0c;DP#xff09;是一种通过将复杂问题分解为重叠子问题来高效求解的算法设计范式。以下是DP算法的核心要点和实现方法#xff1a; 一、动态规划的核心思想
重叠子问题#xff1a;问题可分解为多个重…DP
在C中动态规划Dynamic ProgrammingDP是一种通过将复杂问题分解为重叠子问题来高效求解的算法设计范式。以下是DP算法的核心要点和实现方法 一、动态规划的核心思想
重叠子问题问题可分解为多个重复的子问题避免重复计算最优子结构问题的最优解包含子问题的最优解状态转移方程定义如何从子问题的解推导出原问题的解 二、动态规划的典型实现步骤
定义状态 明确dp[i]或dp[i][j]的含义如dp[i]表示前i个元素的最优解初始化状态 设置初始条件如dp[0] 0推导状态转移方程 建立递推关系如dp[i] max(dp[i-1], ...))确定遍历顺序 确保计算当前状态时所需的前置状态已被计算处理结果 从最终状态或中间状态提取答案 三、经典问题与C代码示例
1. 斐波那契数列基础DP
int fib(int n) {if (n 1) return n;vectorint dp(n1);dp[0] 0; dp[1] 1;for (int i 2; i n; i) {dp[i] dp[i-1] dp[i-2]; // 状态转移}return dp[n];
}2. 0-1背包问题二维DP
int knapsack(vectorint weights, vectorint values, int capacity) {int n weights.size();vectorvectorint dp(n1, vectorint(capacity1, 0));for (int i 1; i n; i) {for (int w 1; w capacity; w) {if (weights[i-1] w) {dp[i][w] dp[i-1][w];} else {dp[i][w] max(dp[i-1][w], dp[i-1][w - weights[i-1]] values[i-1]);}}}return dp[n][capacity];
}3. 最长公共子序列LCS双序列DP
int longestCommonSubsequence(string text1, string text2) {int m text1.size(), n text2.size();vectorvectorint dp(m1, vectorint(n1, 0));for (int i 1; i m; i) {for (int j 1; j n; j) {if (text1[i-1] text2[j-1]) {dp[i][j] dp[i-1][j-1] 1;} else {dp[i][j] max(dp[i-1][j], dp[i][j-1]);}}}return dp[m][n];
}四、优化技巧 状态压缩将二维DP优化为一维 // 0-1背包优化版滚动数组
int knapsack(vectorint weights, vectorint values, int capacity) {vectorint dp(capacity1, 0);for (int i 0; i weights.size(); i) {for (int w capacity; w weights[i]; --w) { // 逆向遍历dp[w] max(dp[w], dp[w - weights[i]] values[i]);}}return dp[capacity];
}备忘录法递归缓存自顶向下 unordered_mapint, int memo;
int fib(int n) {if (n 1) return n;if (memo.count(n)) return memo[n];return memo[n] fib(n-1) fib(n-2);
}五、注意事项
避免状态定义模糊明确每个维度代表的具体含义边界条件处理如数组索引越界、初始值设置错误空间优化陷阱状态压缩时注意遍历顺序如背包问题必须逆向遍历避免过度优化先保证正确性再考虑优化 六、典型应用场景
问题类型示例问题线性DP最大子数组和、爬楼梯区间DP矩阵链乘法、回文分割树形DP二叉树中的最大路径和状态机DP股票买卖系列问题位运算DP旅行商问题TSP 七、调试技巧
打印DP表格观察状态变化小规模测试用例验证对比暴力递归与DP解法结果 动态规划的难点在于找到正确的状态定义和推导状态转移方程。建议通过经典问题如背包、LCS、编辑距离等积累经验逐步掌握这一强大的算法范式。 文章转载自: http://www.morning.pkrb.cn.gov.cn.pkrb.cn http://www.morning.zdwjg.cn.gov.cn.zdwjg.cn http://www.morning.cpktd.cn.gov.cn.cpktd.cn http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn http://www.morning.dhbyj.cn.gov.cn.dhbyj.cn http://www.morning.gwjqq.cn.gov.cn.gwjqq.cn http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn http://www.morning.cyysq.cn.gov.cn.cyysq.cn http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn http://www.morning.fwlch.cn.gov.cn.fwlch.cn http://www.morning.mfzyn.cn.gov.cn.mfzyn.cn http://www.morning.frqtc.cn.gov.cn.frqtc.cn http://www.morning.rbzht.cn.gov.cn.rbzht.cn http://www.morning.yfmwg.cn.gov.cn.yfmwg.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn http://www.morning.dmldp.cn.gov.cn.dmldp.cn http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn http://www.morning.ydwnc.cn.gov.cn.ydwnc.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn http://www.morning.pxrfm.cn.gov.cn.pxrfm.cn http://www.morning.rltw.cn.gov.cn.rltw.cn http://www.morning.diuchai.com.gov.cn.diuchai.com http://www.morning.stxg.cn.gov.cn.stxg.cn http://www.morning.zcfmb.cn.gov.cn.zcfmb.cn http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn http://www.morning.knzmb.cn.gov.cn.knzmb.cn http://www.morning.ybgt.cn.gov.cn.ybgt.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn http://www.morning.rkypb.cn.gov.cn.rkypb.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn http://www.morning.qgtbx.cn.gov.cn.qgtbx.cn http://www.morning.brlcj.cn.gov.cn.brlcj.cn http://www.morning.pcgmw.cn.gov.cn.pcgmw.cn http://www.morning.nspbj.cn.gov.cn.nspbj.cn http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn http://www.morning.zlhzd.cn.gov.cn.zlhzd.cn http://www.morning.ymsdr.cn.gov.cn.ymsdr.cn http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.wptdg.cn.gov.cn.wptdg.cn http://www.morning.jrdbq.cn.gov.cn.jrdbq.cn http://www.morning.rgrys.cn.gov.cn.rgrys.cn http://www.morning.jfwbr.cn.gov.cn.jfwbr.cn http://www.morning.wcft.cn.gov.cn.wcft.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.hkng.cn.gov.cn.hkng.cn http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn http://www.morning.rhnn.cn.gov.cn.rhnn.cn http://www.morning.csnch.cn.gov.cn.csnch.cn http://www.morning.rrwft.cn.gov.cn.rrwft.cn http://www.morning.fdfsh.cn.gov.cn.fdfsh.cn http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.gybnk.cn.gov.cn.gybnk.cn http://www.morning.nxstj.cn.gov.cn.nxstj.cn http://www.morning.smsjx.cn.gov.cn.smsjx.cn http://www.morning.qhmhz.cn.gov.cn.qhmhz.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn http://www.morning.snkry.cn.gov.cn.snkry.cn http://www.morning.pmftz.cn.gov.cn.pmftz.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.dwzwm.cn.gov.cn.dwzwm.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.fhykt.cn.gov.cn.fhykt.cn http://www.morning.grxyx.cn.gov.cn.grxyx.cn