给定大米的价格,重量,袋数。给定钱,问这些钱能买大米的最大重量。
struct rice{
int value;
int number;
int weight;
}rices[101];
int dp[101];
int main(){
int n,i,j,money,num,x,k,ans,t;
cin>>t;
while(t--){
memset(dp,0,sizeof(dp));
scanf("%d%d",&money,&n);
for(i=1;i<=n;i++)
scanf("%d%d%d",&rices[i].value,&rices[i].weight,&rices[i].number);
for(i=1;i<=n;i++)
for(k=1;k<=rices[i].number;k++) //相当于每次再加一袋大米
for(j=money;j>=rices[i].value;j--)
dp[j]=max(dp[j],dp[j-rices[i].value]+rices[i].weight) ; //买还是不买
cout<<dp[money]<<endl;
}
return 0;
}