NYOJ 289(0-1背包)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1001
int ans[N];
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
int n,v,c,w;
int max(int,int);
while(scanf("%d%d",&n,&v),n||v)
{
memset(ans,0,sizeof(ans));
for(int i=1;i<=n;i++)
{
scanf("%d%d",&c,&w);
for(int j=v;j>=c;j--)
ans[j]=max(ans[j],ans[j-c]+w);
}
printf("%d\n",ans[v]);
}
system("pause");
return 0;
}
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

浙公网安备 33010602011771号