【01背包】可爱迷人的香穗子
可爱迷人的香穗子
香穗子正准备参加一个晚会!现在她准备好好打扮一下,她准备戴上耳环,手镯,项链..等等一些装饰品,这里要说明的是,香穗子不是花瓶….
香穗子最多能承受W的重量,每个装饰品也有各自的重量和美观值
现在香穗子要怎么打扮,美观值的和最大
输入:
第一行两个数,w,n
接下来n行,每行两个数,表示物品的信息,第一个数是物品的重量,第二个数是物品的美观值
输出:
表示香穗子最多能得到的最大美观值和
Sample Input
10 2
7 8
8 7
Sample Output
8
数据范围:
n<=100,w<=10000
答案保正小于Maxlongint
很裸的一个01背包问题,直接上代码
C++ Code
/* C++ Code http://oijzh.cnblogs.com */ #include<cstdio> #define MAXN 110 int m,n,w[MAXN],p[MAXN],f[10010]; int main() { freopen("2.in","r",stdin); freopen("2.out","w",stdout); scanf("%d%d",&m,&n); int i,j; for(i=1;i<=n;i++)scanf("%d%d",&w[i],&p[i]); for(i=1;i<=n;i++) for(j=m;j>=w[i];j--) f[j]>?=f[j-w[i]]+p[i]; int max=f[0]; for(i=0;i<=m;i++) max>?=f[i]; printf("%d",max); return 0; }
..... 转载请注明出处 ..... http://oijzh.cnblogs.com ..... by jiangzh