hdu 3466 Proud Merchants(背包问题)
2014-09-09 16:57
253 查看
//hdu 3466 Proud Merchants(背包问题) #include<iostream> #include<cstdio> #include<algorithm> #include<string.h> using namespace std; const int M=5010; const int Inf=999999999; int dp[2][M]; int n,m; struct node { int pi,qi,vi; }MM[600]; bool cmp(node a,node b) { return a.qi-a.pi<b.qi-b.pi; } int Max(int a,int b) { return a>b?a:b; } int DP() { memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { for(int j=m;j>=MM[i].qi;j--) { dp[i%2][j]=Max(dp[i%2][j],dp[(i+1)%2][j-MM[i].pi]+MM[i].vi); } for(int j=0;j<=m;j++) dp[i%2][j]=Max(dp[i%2][j],dp[(i+1)%2][j]); } return dp[n%2][m]; } int main() { while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d%d%d",&MM[i].pi,&MM[i].qi,&MM[i].vi); } sort(MM+1,MM+n+1,cmp); printf("%d\n",DP()); } return 0; }
相关文章推荐
- HDU 3466 Proud Merchants (01背包排序问题)
- 两道需要排序的dp背包下问题 -- hdu 2546 饭卡/ hdu 3466 Proud Merchants
- HDU-3466 Proud Merchants (和放入顺序有关的背包问题 经典题)
- HDU-3466-Proud Merchants(01背包问题)
- hdu 3466 Proud Merchants(贪心+背包)
- hdu-3466 Proud Merchants(01背包之转移)
- 01背包水题篇之HDU3466——Proud Merchants
- hdu 3466 Proud Merchants(0/1背包)
- HDU--3466--Proud Merchants--01背包
- HDU 3466 Proud Merchants 需要排序的背包
- hdu 3466 Proud Merchants(0-1背包+排序)
- HDU - 3466 Proud Merchants骄傲的商人(01背包变形)
- HDU 3466 Proud Merchants 条件限制01背包
- hdu 3466 Proud Merchants 自豪的商人(01背包,微变形)
- HDU 3466 Proud Merchants 01背包 单机调度问题
- HDU 3466 Proud Merchants(背包)
- hdu 3466 Proud Merchants (01背包变形)
- hdu 3466 Proud Merchants(01 背包)
- HDU 3466 Proud Merchants(DP:01背包+贪心)
- HDU3466——背包DP——Proud Merchants