nyoj

阅读: 评论:0

nyoj

nyoj

苹果
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。




输入
有多组测试数据,每组测试数据第一行为2个正整数,分别代表苹果的个数n和背包的容量v,n、v同时为0时结束测试,此时不输出。接下来的n行,每行2个正整数,用空格隔开,分别代表苹果的大小c和价钱w。所有输入数字的范围大于等于0,小于等于1000。
输出
对每组测试数据输出一个整数,代表能放入背包的苹果的总价值。
样例输入
3 3
1 1
2 1
3 1
0 0
样例输出
2
来源
动态规划经典问题

#include<stdio.h> 
#include<string.h>
#include<algorithm>
using namespace std;
struct data
{int c,w;
}ss[1100];
int dp[1100];
int max(int a,int b)
{return a>b?a:b;
}
int main()
{int n,v;while(scanf("%d%d",&n,&v),n||v){memset(dp,0,sizeof(dp));int i,c,w,j;for(i=1;i<=n;++i){scanf("%d%d",&c,&w);ss[i].c=c;ss[i].w=w;}for(i=1;i<=n;++i){for(j=v;j>=ss[i].c;--j) dp[j]=max(dp[j],dp[j-ss[i].c]+ss[i].w);}printf("%dn",dp[v]);}return 0;
}


本文发布于:2024-01-28 06:22:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063941455428.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:nyoj
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23