andre_joy

导航

2012年9月22日

小结论(2)

摘要: 处理背包问题时,经常会遇到体积跟价值相等的情况,比如硬币分类问题。那么我们常常用的状态dp[i]代表体积最大为i时对应的最大价值就是一个无用状态了,因为如果i能够达到,那么最大价值也一定是i。所以dp[]可以选择别的含义,比如用的硬币最多,等等…… 阅读全文

posted @ 2012-09-22 10:14 andre_joy 阅读(96) 评论(0) 推荐(0) 编辑

poj 1787

摘要: 地址:http://poj.org/problem?id=1787题意:分硬币,有1,5,10,25四种硬币,给定每种硬币的数量,给定要组合成的价值,问刚好达到价值时用的硬币最多的情况。mark:多重背包!本题给出两种方法,特别注意下面一个方法!!!代码:需要回溯,于是就加一个path[]存放父亲,dp[]代表个数。由于该题有5,10这两个硬币,多重背包二进制优化的时候可能出现5*2,然后本题要区分开来,所以记录一下就行。#include <stdio.h>#include <string.h>#include <stdlib.h>const int N = 阅读全文

posted @ 2012-09-22 10:12 andre_joy 阅读(548) 评论(0) 推荐(0) 编辑