HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
2013-03-05 12:57
330 查看
题意:不解释。。。
分析:裸的多重背包。
AC代码:
分析:裸的多重背包。
AC代码:
#include<iostream> using namespace std; const int maxm=105; int f[maxm],cost[maxm],val[maxm],num[maxm]; int n,m; int max(int a,int b){ return a>b?a:b; } void CompletePack(int c,int v){ int i; for(i=c;i<=m;i++) f[i]=max(f[i],f[i-c]+v); } void ZeroOnePack(int c,int v){ int i; for(i=m;i>=c;i--) f[i]=max(f[i],f[i-c]+v); } int main() { int i,j,T,k; scanf("%d",&T); while(T--){ scanf("%d %d",&m,&n); for(i=1;i<=n;i++) scanf("%d %d %d",&cost[i],&val[i],&num[i]); for(i=0;i<=m;i++) f[i]=0; for(i=1;i<=n;i++){ if(cost[i]*num[i]>=m) CompletePack(cost[i],val[i]); else{ k=1; while(k<num[i]){ ZeroOnePack(k*cost[i],k*val[i]); num[i]-=k; k<<=1; } ZeroOnePack(num[i]*cost[i],num[i]*val[i]); } } printf("%d\n",f[m]); } return 0; }
相关文章推荐
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包转01背包)
- Hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包模版题)
- HDU-2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- hdu2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- hdu 2191 悼念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汶川大地震遇难同胞——珍惜现在,感恩生活