背包问题
文章平均质量分 77
自爄創煇熿
这个作者很懒,什么都没留下…
展开
-
Robberies(背包的01背包的应用)
http://acm.hdu.edu.cn/showproblem.php?pid=2955#include #includestruct ss{ int mon; double pro;};int main(){ int i,j,n,sum,ncase; ss arr[105]; double f[10005],p; scan原创 2012-07-10 17:33:51 · 452 阅读 · 0 评论 -
背包习题
【题目大意】6种价值分别为1 2 3 4 5 6的石头,给出每种石头的数目,问能不能将这些石头分为价值相等的两堆。【解析】经典的多重背包问题,a[]数组即为1 2 3 4 5 6,count数组题目给出,怎么做呢?上面提到一点,设dp[i]表示容量为i的背包能不能被所给物体装满。如果dp[sum/2]==1,那么就说明可以分为两堆(sum是所有石头的总价值),直接套用上面的模板即可。#原创 2012-05-28 11:04:55 · 476 阅读 · 0 评论 -
背包问题
01 背包,有n 种不同的物品,每个物品有两个属性 size 体积,value 价值,现在给一个容量为 w 的背包,问 最多可带走多少价值的物品。 int f[w+1]; //f[x] 表示背包容量为x 时的最大价值 for (int i=0; i for (int j=w; j>=原创 2012-05-28 09:35:33 · 1088 阅读 · 1 评论 -
hdu1864最大报销额
题目描述:Problem Description现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。 Input测试输入包含若干测试用例。每个原创 2012-07-13 12:14:44 · 497 阅读 · 0 评论 -
整数划分n划分成不大于k的放法数
大意为n用1,2,3,、、、、k的数表示n,求种数?实际为完全背包问题,并且用大数拼接代码如下:#include#includeint main(){ int n,m,i,j,k; long long dp[1002],a[1002]; long long inf=1e18; while(~scanf("%d%d",&n,&m)) {原创 2012-07-14 11:14:56 · 2642 阅读 · 0 评论 -
hdu 2546 o1背包,
此题要求余额大于5时可以买任意价值的东西。所以我们把给定的余额w先减去5,在进行01背包。对饭菜的价值排序,是为了当余额大于等于5时,在去买最大价值的东西。dp[i] 代表余额为i时,可以买的最大价值。#include#include#include#includeusing namespace std;int dp[50010];int s[50010];int mai原创 2013-05-19 07:23:41 · 657 阅读 · 0 评论