NYOJ 49 开心的小明

来源:互联网 发布:linux从u盘复制文件 编辑:程序博客网 时间:2024/05/16 04:39

题目链接~~>

做题感悟:这题就是一个背包的变形,具体见代码。

代码:

#include<stdio.h>#include<iostream>#include<map>#include<string>#include<string.h>#include<stdlib.h>#include<math.h>#include<vector>#include<queue>#include<algorithm>using namespace std ;const int INF = -999999 ;const int MX= 50005 ;int dp[MX] ;int main(){    int T,c,n ;    scanf("%d",&T) ;    while(T--)    {        scanf("%d%d",&c,&n) ;        int v,w ;        memset(dp,0,sizeof(dp)) ;        for(int i=0 ;i<n ;i++)        {            scanf("%d%d",&v,&w) ;            for(int j=c ;j>=v ;j--) // 逆序              if(dp[j]<dp[j-v]+v*w)                   dp[j]=dp[j-v]+v*w ;        }        printf("%d\n",dp[c]) ;    }    return 0 ;}


 

0 0