
完全背包
麻袋君
这个作者很懒,什么都没留下…
展开
-
poj 2063 Investment
题目大意:给你一定的本金和一定的时间,问你在每年将钱投资一些物品,一定时间过后,最多剩下多少钱;解题思路:完全背包问题,因为题目说了本金和物品的花费都是1000的倍数,因此开数组的时候可以缩小1000倍;算每一年的盈利状况时候可以用完全背包求解;需要注意的是,因为每一年过后你的本金都会发生变化,因此得不断的更新本金;#include#include#includeus原创 2015-03-25 11:28:10 · 652 阅读 · 0 评论 -
hdu 1114 Piggy-Bank
题目大意:给你一个空袋子的质量,和一个满袋子的质量,还有n种硬币的价值和重量,问,尽可能装满袋子的情况下能获得的硬币价值最小是多少解题思路:赤果果的完全背包;仅需要注意的是dp的初始化,袋子里为空的时候,价值也为0;#include#include#includeusing namespace std;#define inf 0x3f3f3f3fint main(原创 2015-03-26 14:24:42 · 345 阅读 · 0 评论 -
poj 3260 The Fewest Coins
题目大意:一个商人要买一定价值m的货物,市面上流通的n种货币,商人的每一种货币都有一定的数量,而卖家每一种货币没有数量限定;交易的时候商人需要用给出一定的货币使其价值》=m,卖家则需要找商人一些钱,问,如何才能使交易过程中,商人给出的货币数量和卖家找出的货币数量总和最小;解题思路:商人给出货币,符合多重背包;卖家找零货币,符合完全背包;进行俩次背包,然后统计俩种背包价值为m原创 2015-03-26 13:36:56 · 449 阅读 · 0 评论 -
hdu 1059 Dividing
题目大意:给你六种硬币的数量,每种硬币的价值为它的标号,问能不能将这些硬币平分为价值相同的俩分;解题思路:明显的多重背包问题,背包的容量为价值的一半即可;但是我用多重背包做的话效率特别差;如果用完全背包,然后控制使用次数的话可以优化到100ms,但是我看排行榜上,最快的是0ms,醉了。。。。。。多重背包做法:#include#include#includeusing原创 2015-03-26 15:12:09 · 333 阅读 · 0 评论 -
uva 674 Coin Change
题目大意:给你一定数额的钱,用1,5,10,25,50这几种钱币组合,有多少种组合成给定钱数的方法;解题思路:完全背包入门的题目,dp[j]表示钱币为i的时候方法数,那么每用到一种钱币,就加上dp[j-cost[i]]即可;#include#include#includeusing namespace std;#define maxn 8000int main(){原创 2015-03-23 11:37:03 · 420 阅读 · 0 评论 -
poj 1787 Charlie's Change
题目大意:有4中硬币,给你一个价值v的背包,和四种硬币的数量,让你在装满背包的情况下使用的钱币尽量多,然后输出几种钱币的使用;解题思路:这道题目用多重背包和完全背包都可以做,下面这段代码我是参考的别人的代码写的。首先要注意的是,在进行状态转移的时候,一定要保证上一个状态出现过;used【j】表示价值达到j的时候一种物品的使用次数;path【j】表示上一次最优状态的时候的价值原创 2015-03-25 00:01:42 · 406 阅读 · 0 评论