AC-code:
#include<cstdio>
#include<cstring>
#define max(a,b) a>b?a:b
int main()
{
int m,n,i,j,c[20000],w[4000],p[4000];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d%d",&w[i],&p[i]);
memset(c,0,sizeof(c));
for(i=0;i<n;i++)
for(j=m;j>=w[i];j--)
c[j]=max(c[j],c[j-w[i]]+p[i]);
printf("%d\n",c[m]);
return 0;
}
本文探讨了一种经典的背包问题变种——魅力手链问题。在限定重量的情况下,从多个具有不同重量和吸引力值的装饰品中选择最优组合,使得总吸引力最大。通过动态规划算法求解,提供了一个完整的C++实现代码。
2277

被折叠的 条评论
为什么被折叠?



