人間夜行

一切の有為の法 夢幻泡影の如し

RQNOJ 2 开心的金明

| 评论

//本来是可以用动规做的,但是也提供另一种方法
#include <stdio.h>
long int n,m;
int i,v[30],p[30];
long int maxget(int free,int now)
{
     if(now==-1) return 0;
     if(free-p[now]<0) return maxget(free,now-1);
     long int max1,max2;
     max1=maxget(free,now-1);
     max2=maxget(free-p[now],now-1)+v[now]*p[now];
     if(max1>max2)
     return max1;
     else
     return max2;
}
int main()
{
    scanf("%d %d",&n,&m);
    for(i=0;i<m;i++) scanf("%d %d",&p[i],&v[i]);
    printf("%d",maxget(n,m-1));
    return 0;
}

评论