hdu 3449 Consumer(0,1背包)
2014-09-06 16:00
267 查看
//hdu 3449 Consumer(0,1背包空间优化) #include<iostream> #include<cstdio> #include<string.h> using namespace std; const int N=55; const int M=100008; int dp[2][M]; int Max(int a,int b){return a>b?a:b;} int main() { int n,w; int pi,mi; int cj,vj; while(scanf("%d%d",&n,&w)!=EOF) { memset(dp[0],0,sizeof(dp[0])); for(int i=1;i<=n;i++) { scanf("%d%d",&pi,&mi); for(int j=0;j<pi;j++) { dp[i%2][j]=-1; } for(int j=w;j-pi>=0;j--) { dp[i%2][j]=dp[(i-1)%2][j-pi]; } //============================ for(int k=1;k<=mi;k++) { scanf("%d%d",&cj,&vj); for(int j=w;j>=cj;j--) { if(dp[i%2][j-cj]!=-1) { dp[i%2][j]=Max(dp[i%2][j],dp[i%2][j-cj]+vj); } } } //============================= for(int j=w;j>=0;j--) dp[i%2][j]=Max(dp[i%2][j],dp[(i-1)%2][j]); } printf("%d\n",dp[n%2][w]); } return 0; }
#include<iostream> #include<cstdio> #include<string.h> using namespace std; const int N=55; const int M=100008; int dp [M]; int Max(int a,int b){return a>b?a:b;} int main() { int n,w; int pi,mi; int cj,vj; memset(dp[0],0,sizeof(dp[0])); while(scanf("%d%d",&n,&w)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d%d",&pi,&mi); for(int j=0;j<pi;j++) { dp[i][j]=-1; } for(int j=w;j-pi>=0;j--) { dp[i][j]=dp[i-1][j-pi]; } for(int k=1;k<=mi;k++) { scanf("%d%d",&cj,&vj); for(int j=w;j>=cj;j--) { if(dp[i][j-cj]!=-1) { dp[i][j]=Max(dp[i][j],dp[i][j-cj]+vj); } } } for(int j=w;j>=0;j--) dp[i][j]=Max(dp[i][j],dp[i-1][j]); } printf("%d\n",dp [w]); } return 0; }
相关文章推荐
- HDU 3449—— Consumer(有依赖的背包)
- hdu 3449 Consumer 条件背包 有钱w,给出n种选择,每种选择有m[i]个物品,但必须先买盒子,价格p[i],求买的物品的最大价值
- hdu-3449 Consumer(典型的依赖背包)
- HDU 3449 Consumer 【有依赖背包】【dp】
- HDU 3449 Consumer(依赖背包)
- HDU 3449 Consumer【DP之背包】
- HDU 3449 Consumer(依赖背包)
- HDU 3449 Consumer(有依赖背包)
- HDU 3449 Consumer 依赖背包
- hdu 3449 consumer 有依赖的背包问题
- hdu 3449 Consumer 有依赖关系的背包
- HDU - 3449 Consumer(有依赖的背包问题)
- hdu 3449(依赖背包) Consumer
- HDU 3449 Consumer 依赖背包 入门题
- HDU 3449 Consumer 详细题解(依赖背包)
- Consumer (HDU_3449) 有依赖的背包问题
- hdu 3449 Consumer(依赖背包)
- HDU 3449 Consumer (依赖背包)
- HDU-3449 Consumer(有依赖背包)
- HDU 3449:Consumer(有依赖关系的背包)