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