HDOJ 2191
多重背包。
模版。
1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 #include <string> 6 #include <algorithm> 7 using namespace std; 8 9 int main() 10 { 11 int n,m,c; 12 int v[105],w[105],e[105],dp[105]; 13 14 scanf("%d",&c); 15 while(c--) 16 { 17 scanf("%d %d",&n,&m); 18 for(int i=0;i<m;++i) 19 { 20 scanf("%d %d %d",&v[i],&w[i],&e[i]); 21 } 22 memset(dp,0,sizeof(dp)); 23 for(int i=0;i<m;++i) 24 { 25 for(int j=0;j<e[i];++j) 26 { 27 for(int k=n;k>=v[i];--k) 28 { 29 dp[k]=dp[k]>(dp[k-v[i]]+w[i])?dp[k]:(dp[k-v[i]]+w[i]); 30 } 31 } 32 } 33 printf("%d\n",dp[n]); 34 } 35 }
浙公网安备 33010602011771号