HDU 5410 CRB and His Birthday(完全背包,01背包)
来源:互联网 发布:gas mask for mac 编辑:程序博客网 时间:2024/05/17 01:53
CRB and His Birthday
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2380 Accepted Submission(s): 1120
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 integer T , 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)
Source
2015 Multi-University Training Contest 10
思路:f(x)=ax+b=a(x-1)+a+b,虽然买a物品必须要先买a+b好像有些问题,但因为a+b>a且两者价值相等,所以买a较优时必定会存在买a+b的情况,所以这么拆分没什么影响。
代码:
#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;#define maxn 2005int w[maxn],a[maxn],b[maxn],dp[maxn];int main(){ int C,M,n; scanf("%d",&C); while(C--) { scanf("%d%d",&M,&n); int i,j; for(i=0;i<n;i++) scanf("%d%d%d",&w[i],&a[i],&b[i]); for(i=0;i<n;i++) { for(j=M;j>=w[i];j--) { dp[j]=max(a[i]+b[i]+dp[j-w[i]],dp[j]); } for(j=w[i];j<=M;j++) { dp[j]=max(a[i]+dp[j-w[i]],dp[j]); } } printf("%d\n",dp[M]); memset(dp,0,sizeof(dp)); } return 0;}
阅读全文
0 0
- 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]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] 完全背包变形
- 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-CRB and His Birthday(01背包+完全背包 better)
- HDU 5410 CRB and His Birthday(01背包+完全背包)
- HDU 5410 CRB and His Birthday 01背包和完全背包混合
- hdu 5410 CRB and His Birthday(01+多重背包 dp)
- hdu5410~CRB and His Birthday(01背包+完全背包)
- hdu 5410 CRB and His Birthday(0-1背包+完全背包)
- 主题模型TopicModel:隐含狄利克雷分布LDA
- springMVC入门--7.异常处理机制
- banner无限轮播
- 主成分分析(PCA)
- android与javascript交互
- HDU 5410 CRB and His Birthday(完全背包,01背包)
- Vue.js--一分钟了解
- 断点续传
- springcloud(四):熔断器Hystrix
- 转载:美团点评数据库高可用架构的演进与设想
- Unable to get uboot console on LS1012A freedom board.
- 2.3网站的高可用架构之高可用数据
- 腾讯2017秋招笔试编程题:编码 [python]
- 杨辉三角形算法(java实现)