hdu 5410 01+完全背包
来源:互联网 发布:上海华东理工网络教育 编辑:程序博客网 时间:2024/05/16 01:17
CRB and His Birthday
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1257 Accepted Submission(s): 615
Problem Description
Today is CRB's birthday. His mom decided to buy many presents for her lovely son.
She went to the nearest shop withM Won(currency unit).
At the shop, there areN kinds of presents.
It costsWi Won to buy one present of i -th kind. (So it costs k × Wi Won to buy k of them.)
But as the counter of the shop is her friend, the counter will giveAi × x + Bi candies if she buys x (x >0) presents of i -th kind.
She wants to receive maximum candies. Your task is to help her.
1 ≤T ≤ 20
1 ≤M ≤ 2000
1 ≤N ≤ 1000
0 ≤Ai, Bi ≤ 2000
1 ≤Wi ≤ 2000
She went to the nearest shop with
At the shop, there are
It costs
But as the counter of the shop is her friend, the counter will give
She wants to receive maximum candies. Your task is to help her.
1 ≤
1 ≤
1 ≤
0 ≤
1 ≤
Input
There are multiple test cases. The first line of input contains an integerT , indicating the number of test cases. For each test case:
The first line contains two integersM and N .
ThenN lines follow, i -th line contains three space separated integers Wi ,Ai and Bi .
The first line contains two integers
Then
Output
For each test case, output the maximum candies she can gain.
Sample Input
1100 210 2 120 1 1
Sample Output
21HintCRB's mom buys 10 presents of first kind, and receives 2 × 10 + 1 = 21 candies.
Author
KUT(DPRK)
题意:有n种商品,每种商品中有a个糖果,如果买这种商品就送多b个糖果,只有第一次买的时候才送。现在有m元,最多能买多少糖果?
思路:第一次买一种商品时有送糖果,对这一次进行一次01背包,也就是只能买一次。然后对这种商品来一次完全背包,此时不送糖果,也可以多买。
ac代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<cctype>#include<stdio.h>#define min(a,b)(a<b?a:b)#define max(a,b)(a>b?a:b)#define INF 0x3f3f3f3ftypedef long long ll;using namespace std;int a[1100],w[1100],b[1100];int dp[2100];int main(){ int T,m,n,i,j; scanf("%d",&T); while(T--) { scanf("%d%d",&m,&n); for(i=1;i<=n;i++) { scanf("%d%d%d",&w[i],&a[i],&b[i]); } memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { for(j=m;j>=w[i];j--) { dp[j]=max(dp[j],dp[j-w[i]]+a[i]+b[i]); } for(j=w[i];j<=m;j++) { dp[j]=max(dp[j],dp[j-w[i]]+a[i]); } } ll sum=-1; for(i=m;i>0;i--) sum=max(sum,dp[i]); printf("%I64d\n",sum); } return 0;}
0 0
- hdu 5410 01+完全背包
- HDU 5410(01背包+完全背包)
- 01背包+完全背包 HDU
- hdu 5410 CRB and His Birthday(01背包+完全背包)
- HDU 5410 CRB and His Birthday (01背包+完全背包)
- hdu 5410 CRB and His Birthday(01背包+完全背包)
- HDU 5410 CRB and His Birthday(完全背包,01背包)
- HDU 5410 (0 1背包+ 完全背包)
- HDU 5410 CRB and His Birthday 混合背包(01背包和完全背包混合)
- HDU 1059 01背包+完全背包=多重背包
- [HDU 5410]CRB and His Birthday[01、完全背包]
- hdu 5410 CRB and His Birthday 01完全混合背包
- hdu 2602 01背包,hdu 1114 完全背包
- Piggy-Bank+hdu+01完全背包问题
- hdu 1114 完全背包
- hdu 1114 完全背包
- HDU-1114 完全背包
- HDU 1114 完全背包
- 龙书D3D11章节习题答案(第八章)
- 解决IE访问Oracel OEM证书错误
- javascript语法之字符串转换成数字
- gulp-express实现node-express项目实时刷新
- 值类型和引用类型
- hdu 5410 01+完全背包
- boa配置文件详解
- Git常用命令,很全很详细讲解的也不错
- 存储scale-up和scalce-out架构
- [leetcode] 【数组】 60. Permutation Sequence
- 003 创建Android应用程序的工程
- 【一天一道LeetCode】#56. Merge Intervals
- BZOJ 4566: [Haoi2016]找相同字符
- JDK1.6.0+Tomcat6.0+myeclipse6.5的安装配置