1. 你对动态规划算法的理解
适用于解最优化的问题,像是分治法的优化与升级吧。与分治法类似,基本思想是将待解决的问题分成多个子问题,先求解子问题,再结合子问题得到原问题的解。不同的是,动态规划分解得到的子问题不是相互独立的。而且,通过一个表来记录所有已解决的子问题答案,避免了分治法中的大量重复计算。
2. 分别列出编程题1、2的递归方程
编程题1的递归方程:m[i] = max {m[k] | a[k] < a[i]} (1 <= k < i)
编程题2的递归方程:m[i] = min {c[i][k] + m[k]} (i<k<=n) (m[i]表示从i站出发到目的地的最小费用、c[i][j]表示从i站到j站的费用)
边界: m[n] = 0
3. 说明结对编程情况
在这次结对编程过程中,我发现了自身存在的问题,很多时候都是能想出解决问题的方法,能写出递归方程,却经常卡在打代码上。日后一定要加强代码这一方面。除此,结对编程通过交流提高了解题的效率,希望能够继续一起加油吧!!