vijos P1317 开心的金明

vijos P1317 开心的金明

01背包问题。

以下是我的代码:

#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;
}

你可能感兴趣的:(vijos P1317 开心的金明)