随笔分类 -  01背包

摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意:把商品分成两半,如不能均分,尽可能的让两个数相接近。输出结果:两个数字a,b且a>=b。 思路:01背包。 先把商品的总价值计算出来,sum/2做为背包的容量。 然后讲同种商品的多件,存储为不同 阅读全文
posted @ 2018-09-28 22:04 CheeseIce 阅读(168) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=2079 题意:同样的学分 ,有多少种组合数,注意同样学分,课程没有区别 思路:两种方法 背包: 注意初始化时dp[0]=1,其他都为0,循环时从学分N开始更新,减到为0,表示成功,组合数加一。 代码: 母函数 阅读全文
posted @ 2018-09-05 22:26 CheeseIce 阅读(347) 评论(0) 推荐(1)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:假设你有M元,已经Pi,Qi,Vi(i为角标,1<i<N),当M>Qi,时才能购买该商品,得到价值Vi,问得到的最大的价值。 思路:知道是变形的01背包问题,但是思考了很久不知道怎么解决,于是看 阅读全文
posted @ 2018-09-04 18:42 CheeseIce 阅读(278) 评论(0) 推荐(0)
摘要:题目http://acm.hdu.edu.cn/showproblem.php?pid=2546 思路:再01背包的问题上稍作修改 如何满足 :卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)?并使得余额最少? 找到最贵的菜,卡上的剩余金额大于 阅读全文
posted @ 2018-08-27 16:41 CheeseIce 阅读(151) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=5410 虽然是英文题目:但还是很好理解的。明显的背包问题 思路:如果你能想到把题目拆分成小问题,就会简单许多: 既然题目中的价值是:这种形式Ai × x + Bi,可以看成两部分Ai + Bi和Ai × (x 阅读全文
posted @ 2018-08-15 17:40 CheeseIce 阅读(164) 评论(0) 推荐(0)
摘要:题意:已知经验值,保留的忍耐度,怪的种数和最多的杀怪数。求进入下一级的最优方案。 思路:用二维费用的背包+完全背包问题 (顺序循环)方法求解 什么是二维费用的背包问题? 问题: 二维费用的背包问题是指:对于每件物品,具有两种不同的费用;选择这件物品必须同时付出这两种代价;对于每种代价都有一个可付出的 阅读全文
posted @ 2018-08-08 11:19 CheeseIce 阅读(146) 评论(0) 推荐(0)
摘要:题意:装骨头的容器大小固定,有一堆骨头,已知骨头的价值和大小,在不超过容积大小的情况下,问:所装骨头的最大价值? 思路:典型的01背包问题,不需要有任何的变动。 模板: for(int j=v;j>=a[i].w;j–) //v是容积 { dp[j]=max(dp[j],dp[j-a[i].w]+a 阅读全文
posted @ 2018-08-07 10:23 CheeseIce 阅读(132) 评论(0) 推荐(0)
摘要:题意: 强盗抢银行,在不被抓住的情况下,想尽量多的偷点钱。已知各个银行的金钱和被抓的概率,以及强盗能容忍的最大不被抓的概率(小于等于该概率才能不被抓),求最多能抢到钱? 并不是简单的01背包问题? 1.概率是浮点数 2.最大不被抓的概率不是简单相加,由概率论可知,要抢的几家银行同时不被抓,要相乘。P 阅读全文
posted @ 2018-08-06 11:58 CheeseIce 阅读(247) 评论(0) 推荐(0)
摘要:![勾选C++才能过 题意: 先规定可以报销一定额度的发票,物品类型有A,B,C,三种。要求每张发票总额不得超过1000元,单项物品不得超过600.求报销的最大额 分析: 先找到合格的发票,然后再挑选总额最大的几张发票(01背包来解决) 如何找出合格发票? 1.发票中只有ABC着三种物品 2.单张发 阅读全文
posted @ 2018-08-05 13:33 CheeseIce 阅读(235) 评论(0) 推荐(0)