玩OJ的牛们,来看看吧,帮忙找下错误,看了N久也不知道错哪了
这是RQNOJ上面的第二题,http://www.
简单的01背包问题,可是我总是WA,实在找不出来错啊,麻烦论坛牛们给我找找错吧,多谢了
程序代码:#include<stdio.h>
#include<malloc.h>
int main()
{
int *mony,*obj;
int N,m,Imp;
int f[3001]={0};
int i,j;
scanf("%d%d",&N,&m);
mony=(int *)calloc(m,sizeof(int));
obj=(int *)calloc(m,sizeof(int));
for(i=0;i<m;i++)
{
scanf("%d",mony+i);
scanf("%d",&Imp);
*(obj+i)=(*(mony+i))*Imp;
}
for(i=0;i<m;i++)
{
for(j=N;j>=mony[i];j--)
{
if(f[j]<f[j-mony[i]]+obj[i])
f[j]=f[j-mony[i]]+obj[i];
}
}
printf("%d\n",f[N]);
free(mony);free(obj);
return 0;
}[ 本帖最后由 playcode 于 2010-12-20 17:31 编辑 ]









