随笔分类 - 动态规划
摘要:题意:换零钱,求找开某个面值至少需要多少枚零钱 例如:有面值1,4,6的硬币无限枚,现需要找开面值8,有两种方案,1+1+6和4+4,则至少需要两枚零钱可找开8元面额。 题解: (一)使用N^2的动态规划,略优于深度优先遍历 用opt[N]表示换零N面值至少需要的枚数,data[k]数组存放给定的k
阅读全文
posted @ 2018-01-22 15:05
proscientist
摘要:背包问题九讲非常有助于入门动态规划,但是来源出处不可考,以下仅列出个人认为其中很有帮助的节选: 背包问题与动态规划的基本思想 网上有很多关于背包问题和动态规划的代码实现文章,但是如何理解动态规划的思想才是最关键的,尤其如何理解成这是一个多阶段的决策过程尤为重要,下面的这个动态规划讲解非常好,主要从两
阅读全文
posted @ 2018-01-16 11:56
proscientist
摘要:Making N Dollars 拼凑面值N 题意:有面值为1~100的硬币,每种面值不限个数,求有多少种解法 思路:用data[num][coin]记录用硬币1~coin拼面额为num的价值所需的硬币数。从大面额开始,最多使用step=num/coin枚,最少使用0枚,则排除一种硬币。 该大面额硬
阅读全文
posted @ 2018-01-16 11:33
proscientist
摘要:题意:一些不同价值和一定数量的硬币,求用这些硬币可以组合成价值在[1 , m]之间的有多少。 分析:初始 d[] 为负无穷,然后多重背包,最后统计d[]中有多少是大于0的。 递归方程只需将完全背包题目的方程略微修改,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。有状态转移方
阅读全文
posted @ 2018-01-16 10:44
proscientist

浙公网安备 33010602011771号