hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
2013-11-06 09:25
225 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; int dp[102],W; int p[102],w[102],num[102]; void pack(int cost,int weight) { for(int i=W;i>=weight;i--) dp[i]=max(dp[i],dp[i-weight]+cost); } void ComletePack(int cost,int weight) { for(int i=weight;i<=W;i++) dp[i]=max(dp[i],dp[i-weight]+cost); } void MultiPack(int weight ,int cost,int num) { if(num*cost>=W) ComletePack(weight,cost); else { int k=1; while(k<num){ pack(weight*k,cost*k); num-=k;k+=k; } pack(weight*num,cost*num); } } int main(){ int T,n,i; scanf("%d",&T); while(T--) { scanf("%d%d",&W,&n); for(i=0;i<n;i++) scanf("%d%d%d",&p[i],&w[i],&num[i]); memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) MultiPack(w[i],p[i],num[i]); printf("%d\n",dp[W]); } return 0; }
相关文章推荐
- 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汶川大地震遇难同胞——珍惜现在,感恩生活
- hdu2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
- HDU--杭电--2191--悼念512汶川大地震遇难同胞——珍惜现在,感恩生活--背包
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(完全背包)
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 单调队列优化dp
- HDU 2191 - 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活(多重背包)
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活【多重背包】