作者:mobiledu2502875545 | 来源:互联网 | 2023-09-14 18:25
Problem Description
急!灾区的食物依然短缺!
为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。
请问:你用有限的资金最多能采购多少公斤粮食呢?
Input
输入数据首先包含一个正整数C&#xff0c;表示有C组测试用例&#xff0c;每组测试用例的第一行是两个整数n和m(1<&#61;n<&#61;100, 1<&#61;m<&#61;100),分别表示经费的金额和大米的种类&#xff0c;然后是m行数据&#xff0c;每行包含3个数p&#xff0c;h和c(1<&#61;p<&#61;20,1<&#61;h<&#61;200,1<&#61;c<&#61;20)&#xff0c;分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。
Output
对于每组测试数据&#xff0c;请输出能够购买大米的最多重量&#xff0c;你可以假设经费买不光所有的大米&#xff0c;并且经费你可以不用完。每个实例的输出占一行。
Sample Input
Sample Output
#include
#include
#define max(x,y) ((x)>(y))?(x):(y)
int main()
{int maxV[201],weight[500],value[500];int ca,m,w,v,num;int t,ti,i,j,count;scanf("%d",&t);for(ti&#61;0; ti0)//此时若num还有剩余&#xff0c;即2加到n的值小于num//则把剩下数量的物品算作一件物品{weight[count]&#61;num*w;value[count]&#61;num*v;&#43;&#43;count;}}for(i&#61;0; i&#61;weight[i]; --j)maxV[j]&#61;max(maxV[j],maxV[j-weight[i]]&#43;value[i]);printf("%d\n",maxV[ca]);}return 0;
}
个人网站&#xff1a;https://jqh.zone 阅读原文