01背包問(wèn)題。
以下是我的代碼:
#include<stdio.h>
#define max(a,b) (a>b?a:b)
int main()


{
freopen("happy.in","r",stdin);
freopen("happy.out","w",stdout);

long N,m,i,j,ans=0,w[26],c[26],d[30001]=
{0};
scanf("%ld%ld",&N,&m);
for(i=1;i<=m;i++)

{
scanf("%ld%ld",&c[i],&w[i]);
w[i]*=c[i];
}
for(i=1;i<=m;i++)
for(j=N;j>=c[i];j--)

{
d[j]=max(d[j],d[j-c[i]]+w[i]);
ans=max(ans,d[j]);
}
printf("%ld\n",ans);
return 0;
}
