《算法艺术与信息学竞赛》标准课件 动态规划(一): 经典问题 刘汝佳 目录 一、最长公共子序列O(mn) 二、最优排序二叉树O(n3) 三、最长上升子序列O(nlogn) 四、最优三角剖分O(n3) 五、最大m子段和O(mn) 六、0-1背包问题O(min{nc, 2n, n1.44n}) 一、最长公共子序列 Longest Common Subsequence(LCS) 分析 考虑前缀x[1..i]和y[1..j], 定义 c[i,j] = |LCS(x[1..i], y[1..j])| 则c[m,n] = |LCS(x, y)|. 递推公式为 很直观. 考虑x[i]=y[j]的情形: 关键点一: 最优子结构 为了使用动态规划, 问题需具备最优子结构(Optimal Substructure) 直接书写的程序 递归树分析 关键点二: 重叠子问题 为了让动态规划确实发挥功效, 问题应该包含尽量多的重叠子问题(overlapping subproblems) 解决方法: 记忆化 注意memoization不是memorization 自底向上递推 空间优化 如果只需要最优值, 可以用滚动数组实现 按照i递增的顺序计算, d[i,j]只和d[i-1,j]和d[i,j-1]以及d[i-1,j-1]有关系,因此只需要保留相邻两行, 空间复杂度为O(min{m,n}) 更进一步的,
您可能关注的文档
最近下载
- 高创伺服驱动器CDHD2快速入门指南.pdf VIP
- 高创伺服驱动器CDHD2操作手册使用说明书.pdf VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 为什么相信专家.pdf VIP
- 氨分解制氢课件.ppt VIP
- 成考专升本政治专项训练及答案.docx VIP
- 成人高考函授高起专 文史类数学(文)精简核心版.docx VIP
- 成人高考函授高起专【文史类语文】核心速记清单(必背通关版).docx VIP
- 化妆品新原料质量控制标准编制要求、毒理学评价技术导则、技术要求、安全监测、突发情况报告样例.docx VIP
- 2025颅脑疾病手术后抗癫痫药物应用专家共识(全文) .pdf VIP
原创力文档

文档评论(0)