首页 > 代码库 > NYOJ 49 开心的小明

NYOJ 49 开心的小明

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=49

 

思路:典型的01背包问题。权值为a*b。哎提交了好几次才A掉,还是做的题少了。。

 

代码:

 #include <iostream>#include<cstring> using namespace std;int dp[30001];int main(){    int num;    cin>>num;    int a,b;    int n,m;    while(num--)    {            memset(dp,0,sizeof(dp));            cin>>n>>m;                            for(int i=1;i<=m;i++)            {                cin>>a>>b;                for(int j=n;j>=a;j--)                    dp[j] = max(dp[j],dp[j-a]+a*b);             }        cout<<dp[n]<<endl;    }    return 0;}         

 

NYOJ 49 开心的小明