刚学了动态规划,然后这几天就在做题了。
动态规划和贪心真的很像,一开始我都没有分清楚,不过想清楚以后区别还是挺大的。
贪心是排序以后按照顺序选,按照一种标准选最优解。DP把一个问题分成若干子问题,每一步都考虑所有情况(标准不一定唯一),选择最优决策。
DP一般根据时间或空间顺序划分阶段,经常用递归求解(自己感觉这个应该算是DP的一个特点了吧,最近看的例题都离不开递归),循环嵌套的出镜率特别高,所以格外容易超时。通常会用空间换时间,把已经求出来的值用数组储存起来,用记忆化搜索。经常使用dx[]={-1,0,1,0},dy[]={0,1,0,-1}来表示上下左右四个方向。
DP的关键是1.分阶段,2.阶段决策,3.状态转移
对于DP的理解大概就是这些吧,最近做题感觉状态不怎么样。看例题的时候感觉还好,能理解思路,明白程序这样写的意义。但自己做的时候盯着题目看半天,知道DP怎么用,却觉得具体到某一个题上就找不到思路了,思考半天写出来的程序连样例都过的很艰难,不知道是不是因为刚刚学了还不太熟悉,希望以后写多了以后这种情况会好一些吧。这两天没有出现超时的问题,不过我觉得这个练习肯定少不了超时的,希望以后出现了能解决好吧。
近期学习总结

