hdu3466Proud Merchants (01背包,以q-p从小到大排序)
2013-11-25 20:47
253 查看
Problem Description
Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still very proud even if their nation hasn’t been so wealthy any
more.
The merchants were the most typical, each of them only sold exactly one item, the price was Pi, but they would refuse to make a trade with you if your money were less than Qi, and iSea evaluated every item a value Vi.
If he had M units of money, what’s the maximum value iSea could get?
Input
There are several test cases in the input.
Each test case begin with two integers N, M (1 ≤ N ≤ 500, 1 ≤ M ≤ 5000), indicating the items’ number and the initial money.
Then N lines follow, each line contains three numbers Pi, Qi and Vi (1 ≤ Pi ≤ Qi ≤ 100, 1 ≤ Vi ≤ 1000), their meaning is in the description.
The input terminates by end of file marker.
Output
For each test case, output one integer, indicating maximum value iSea could get.
Sample Input
Sample Output
[/code]
Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still very proud even if their nation hasn’t been so wealthy any
more.
The merchants were the most typical, each of them only sold exactly one item, the price was Pi, but they would refuse to make a trade with you if your money were less than Qi, and iSea evaluated every item a value Vi.
If he had M units of money, what’s the maximum value iSea could get?
Input
There are several test cases in the input.
Each test case begin with two integers N, M (1 ≤ N ≤ 500, 1 ≤ M ≤ 5000), indicating the items’ number and the initial money.
Then N lines follow, each line contains three numbers Pi, Qi and Vi (1 ≤ Pi ≤ Qi ≤ 100, 1 ≤ Vi ≤ 1000), their meaning is in the description.
The input terminates by end of file marker.
Output
For each test case, output one integer, indicating maximum value iSea could get.
Sample Input
2 10 10 15 10 5 10 5 3 10 5 10 5 3 5 6 2 7 3
Sample Output
5 11[code]#include<stdio.h> #include<iostream> #include<algorithm> using namespace std; struct nn { int use,Q,valu,sub; }node[505]; int dp[5005],M; int cmp(nn a,nn b){return a.sub<b.sub;} void zeroonepack(int use,int Q,int valu) { for(int v=M;v>=Q;v--) if(dp[v-use]+valu>dp[v]) dp[v]=dp[v-use]+valu; } int main() { int n; while(scanf("%d%d",&n,&M)>0) { for(int i=0;i<n;i++) { scanf("%d%d%d",&node[i].use,&node[i].Q,&node[i].valu); node[i].sub=node[i].Q-node[i].use; } for(int i=0;i<=M;i++) dp[i]=0; sort(node,node+n,cmp);//以q-p从小到大排序 for(int i=0;i<n;i++) zeroonepack(node[i].use,node[i].Q,node[i].valu); printf("%d\n",dp[M]); } }
[/code]
相关文章推荐
- 01背包排序
- hdu 3466 排序01背包
- hdu3466——Proud Merchants——————【01背包排序】
- 排序01背包 Problem W:Proud Merchants(HDU 3466)
- CF----思维排序+01背包 山东省第八届省赛K题
- HDU 3466 Proud Merchants (01背包排序问题)
- hdu 3466 (01背包+思维排序)
- 【杭电oj】3466 - Proud Merchants(01背包,排序处理)
- HDU 3466 Proud Merchants ……(01背包 + 排序(物品的选择有先后顺序))
- hdu3466(01背包排序)
- 山东省第八届ACM省赛K题 CF(01背包,技巧得排序)
- HDU - 3466 - Proud Merchants (01背包 + 排序)
- hdu 3466 Proud Merchants (01背包 + 结构体的sort排序)
- 在1到30之间产生7个不重复的随机数,然后从小到大排序,若产生的数只有个位,则在个位前添加0,如01
- 01背包问题-动态规划
- 简单:01背包问题
- 挑战程序设计竞赛 01背包变换对象
- HDU 2602 01背包
- HDU 2187 悼念512汶川大地震遇难同胞——老人是真饿了(结构体排序,背包????)
- POJ - 2184 Cow Exhibition(变种01背包...)