玩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 编辑 ]