Description
某超市举行活动,凡参加活动的市民,可以领到一个容量为C的箱子。超市里面的商品任意挑选,每种商品可拿的个数也无限制,只要能装进这个箱子(不超出箱子的容量),就可以免费拿走。
Input
多测试用例。
每个测试用例第一行是两个正整数 C 和 N ,( 0 < C ≤ 10,000, 0 < N < 10,000 ),C 表示箱子的容量,N 表示超市里面商品的总数量。
接下来 N 行,每行两个正整数 Pi 和 Qi ( 0 < Pi < 1000 , Qi > 0 , 1 ≤ i ≤ N ) ,表示第i件商品的价值和体积。
Output
每个测试用例输出一行:你能够免费拿走的商品的最大价值总和。
Sample Input
4 2
7 3
4 2
Sample Output
8
#include<stdio.h>
#include<string.h>
int max(int a,int b)
{
if(a>=b)
return a;
else
return b;
}
int main()
{
int T,n,C,i,j;
int w[1010];
int v[1010];
int dp[13010];
while(scanf("%d%d",&C,&n)!=EOF)
{
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
scanf("%d%d",&v[i],&w[i]);
///第零行第零列的值为0,循环下标从1开始,i表示第几个物品,j表示重量
for(i=1;i<=n;i++)
{
for(j=w[i];j<=C;j++)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
printf("%d\n",dp[C]);
}
return 0;
}
标签:箱子,背包,int,完全,超市,商品,测试用例,dp 来源: https://blog.csdn.net/There_there/article/details/122143681
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。