本人学习算法的时候,一直对动态规划报有一种恐惧的心理,直到学习了下面链接的dp全解析,才慢慢撸起动态规划的题目:
http://www.cnblogs.com/sdjl/articles/1274312.html
对于一道题目能否用dp,关键考虑以下几点:
1、构造问题所对应的过程。
2、思考过程的最后一个步骤,看看有哪些选择情况。
3、找到最后一步的子问题,确保符合“子问题重叠”,把子问题中不相同的地方设置为参数。
4、使得子问题符合“最优子结构”。
5、找到边界,考虑边界的各种处理方式。
6、确保满足“子问题独立”,一般而言,如果我们是在多个子问题中选择一个作为实施方案,而不会同时实施多个方案,那么子问题就是独立的。
7、考虑如何做备忘录。
8、分析所需时间是否满足要求。
9、写出转移方程式。