算法第三章

1、  对动态规划算法的理解:动态规划就是将一个大问题变成一个个子问题再去解决,而每个子问题都是互相有联系的,不像二分法是独立存在的。而这些子问题都可以通过递归或者多重循环来解决,最终得出最终答案。无论是矩阵连乘问题,背包问题,还是我们实践中的三道实验题目,都是通过子问题来得出。我觉得三角形那个是最典型的,一层层解决,能够让人对动态规划有更深的理解。动态规划是很好的算法,以后处理问题的时候可以先考虑这个算法,实现起来也清晰简单。

2、          列出递归方程:

①    dp[i] = max(dp[j]+1, dp[i]);

②    i==n, dp[i] = 0;
i<n, dp[i] = min{ r[i][k] + dp[k] }, i<k<=n;

3、  结对编程情况:做动态规划作业时应该先独立思考,然后互相讨论。一开始写动态规划作业的时候,两个人都有不同的想法,处理的角度可能有点偏差。后来经过讨论确定想法其实是一致的,就都自己先把自己的代码打出来,再互相讨论,最后互相修改,一起进步。平日写作业结对编程效果不明显,实验课上比较不错。

猜你喜欢

转载自www.cnblogs.com/ReJay/p/9895697.html