摘要: 2017-09-03 19:03:06 writer:pprp 状态定义: dp[i][j] = x 代表的是 用前i 中硬币构造 j 美分的方法数目; 初始化: dp[0][0] = 1 状态转移: dp[i][j] = dp[i-1][j] + dp[i-1][j-val[i]] 代码如下: 阅读全文
posted @ 2017-09-03 19:09 pprp 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 2017-09-03 17:01:36 writer:pprp 这是一道多重背包裸题 - 记得是从右向左进行,还有几点需要注意啊,都在代码中表示出来了 代码如下: 阅读全文
posted @ 2017-09-03 17:03 pprp 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 2017-09-03 16:16:38 writer:pprp 完全背包问题:从左向右进行扫描,用一维阵列进行分析 代码如下: 阅读全文
posted @ 2017-09-03 16:19 pprp 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 2017-09-03 15:42:20 writer:pprp 01背包裸题,直接用一维阵列的做法就可以了 阅读全文
posted @ 2017-09-03 15:44 pprp 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 2017-09-03 11:39:16 writer:pprp 以很简单的一个动态规划问题为引入: 从左上角到右下角走过的路径和最大,问你最大为多少? 1、可以想到普通的dp 状态转移为: dp[i][j] = max(dp[i-1][j],dp[i][j-1]) + arr[i][j]; 2、采用 阅读全文
posted @ 2017-09-03 11:46 pprp 阅读(580) 评论(0) 推荐(0) 编辑