之前在学习如何写hoj 1003 的时候,由于不懂动态规划,所以把动态规划相关内容智力学习了一下,虽然对我来说,学会1003和看明白跟动态规划没有什么比较大的关系,但对之前收集的资料做一下整理也好。
首先,什么是动态规划,如何理解动态规划
知乎徐凯强的答案很有“总纲”的感觉
https://www.zhihu.com/question/23995189/answer/35324479
王勐 也说的很清楚
https://www.zhihu.com/question/23995189/answer/35429905
冒泡 也很明确做了解释
https://www.zhihu.com/question/39948290/answer/83942329
如果好好学了图论,动态规划可以等价一个有向无环图上的最短路问题。只要图建立出来了,用拓扑排序,dfs,bfs甚至最短路算法都能解。
动态规划范例
演算法笔记,这个台湾公开书讲的算法内容很好,代码也容易懂,表述也很轻松,看起来没什么压力感。之前看了它的大数计算部分内容,让我有了不少了解,但是很可惜,它讲的DP 我看不明白。(可能我到现在也是一知半解)
http://www.csie.ntnu.edu.tw/~u91029/DynamicProgramming.html
动态规划常见问题与代码,嗯,我也没怎么看
https://segmentfault.com/a/1190000004498566
用最短路径讲动态规划,用图像解释了什么是状态,和状态转移。
http://mirlab.org/jang/books/dcpr/dp.asp?title=8-1%20Introduction%20to%20Dynamic%20Programming%20(%B0%CA%BAA%B3W%B9%BA)&language=chinese
上面都是我比较仔细看内容,对dp有了比较初步的认识,但也困惑于dp该如何解决问题,关于一个问题到底该怎么解,如何把问题划分成dp状态,如何用代码正确的表述。我都没有仔细掌握,而去关注怎么才能掌握解决1003的重点。
但还有些我没有看的太仔细,但“直觉”内容不错的,也就贴链接了
dp 自顶向下 自底向上结局问题办法,python代码
http://sobuhu.com/algorithm/2012/12/19/dynamic-programming-1.html
详讲动态规划
http://blog.jobbole.com/96364/
动态规划经典5题
http://blog.csdn.net/zmazon/article/details/8247015
算法导论 学习总结
http://www.wutianqi.com/?p=2484
动态规划与状态机
http://liam0205.me/2016/05/13/dynamic-programming-and-state-machine/