hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
2013-07-26 16:31
369 查看
#include <stdio.h> #include <string.h> #define MAXN 102 int dp[MAXN],n,m; //多重背包 void CompletePack(int v,int w)//完全背包 { int i; for(i=v;i<=n;++i) if(dp[i]<dp[i-v]+w) dp[i]=dp[i-v]+w; } void ZeroOnePack(int v,int w)//01背包 { int i; for(i=n;i>=v;--i) if(dp[i]<dp[i-v]+w) dp[i]=dp[i-v]+w; } int main() { int p,h,c,m,i,j,test; scanf("%d",&test); while(test--) { memset(dp,0,sizeof(dp)); scanf("%d %d",&n,&m); for (i=1;i<=m;i++) { scanf("%d %d %d",&p,&h,&c); if(p*c>=n) CompletePack(p,h); else { for (j=1;j<c;j<<1) { ZeroOnePack(j*p,j*h); c-=j; } ZeroOnePack(c*p,c*h); } } printf("%d\n",dp ); } return 0; }
相关文章推荐
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活【多重背包】
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU-2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 ( 多重背包 )
- hdu2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU 2191 - 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活(多重背包)
- 多重背包问题:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(HDU 2191)(二进制优化)
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 背包
- hdu 2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU - 2191 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (二进制优化多重背包)
- HDU-2191-悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包 水)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- HDU-2191 -悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- hdu 2191 (多重背包)悼念512汶川大地震遇难同胞——珍惜现在,感恩生活