NYOJ 49 开心的小明

#include<stdio.h>
//#define Max(a,b) a>b?a:b
#include<string.h>
int w[30],v[30],dp[30000];
int Max(int a,int b)
{
  return a>b?a:b;
}
int main()
{
  int n,m,num;
  scanf("%d\n",&num);
  while(num--)
  {
    memset(dp,0,sizeof(dp));
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;i++)
    {
      scanf("%d %d",&w[i],&v[i]);
    }
    for(int i=1;i<=m;i++)
    {
      for(int j=n;j>=w[i];j--)
      {
        dp[j]=Max(dp[j],dp[j-w[i]]+w[i]*v[i]);
      }
    }
    printf("%d\n",dp[n]);
  }
  return 0;
}

posted @ 2015-07-03 20:07  小松鼠。  阅读(141)  评论(0编辑  收藏  举报