HDU2191多重背包

来源:互联网 发布:量化股票模型软件 编辑:程序博客网 时间:2024/04/29 12:49
#include <stdio.h>#include <algorithm>#include <iostream>#define M 200using namespace std;int dp[M],price[M],weight[M];int sum[M];int max(int a,int b){return a>b?a:b;}int main(){int t,n,m,i,j,k;while(~scanf("%d",&t)){while(t--){memset(dp,0,sizeof(dp));scanf("%d%d",&n,&m);for(i=1;i<=m;i++){scanf("%d%d%d",&price[i],&weight[i],&sum[i]);}for(i=1;i<=m;i++){for(j=1;j<=sum[i];j++){for(k=n;k>=price[i];k--){dp[k] = max(dp[k],dp[k-price[i]]+weight[i]);}}}printf("%d\n",dp[n]);}}return 0;}

0 0