您的位置:首页 > 其它

51nod-0-1背包问题

2016-08-17 15:32 169 查看
<span style="font-size:18px;">
#include<cstdio>
#include<cstring>
int f[10000+11];
struct node
{
int wi;//体积
int pi;//价值
}arr[110];
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
int n,w;
scanf("%d%d",&n,&w);
for(int i=1;i<=n;++i)
scanf("%d%d",&arr[i].wi,&arr[i].pi);
memset(f,0,sizeof(f));
for(int i=1;i<=n;++i)
{
for(int j=w;j>=arr[i].wi;--j)
{
f[j]=max(f[j],f[j-arr[i].wi]+arr[i].pi);
}
}
printf("%d\n",f[w]);
}
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: