摘要:
上大二的时候,参加学校的在线编程竞赛,刚开始遇到有关动态规划的问题。我看了看几个经典的动态规划问题,仍然不是很理解。请教一位ACM大牛,他说动态规划比起一种解题技术更多的是一种思考方法,需要锻炼才能掌握。过了一段时间,随着自己不断积累解决问题经验,再看动态规划有种豁然开朗的感觉。虽然没有经过正规的ACM锻炼,但也算懂得了一种解决问题的思路。 动态规划解决问题有两个步骤:首先将待求解的问题分解为若干个重叠子问题,然后再合并子问题的解以得出原问题的解。分解的阶段子问题应该是最优子结构,在合并的阶段子问题的最优解逐渐被计算并被保存,因为子问题的重复性就不需要重新解决这些子问题。我觉得理解动态规... 阅读全文