NYOJ 开心的小明

Posted fzuhyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NYOJ 开心的小明相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
int d[30][30005];    //d[i][j]  i件中,j重量的物品 ,价格最高 
int v[30],w[30]; 
int Max(int a,int b)
{
    if(a>b)    return a;
    else    return b;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=m;i++)
            cin>>v[i]>>w[i];
        for(int i=0;i<=m;i++)
            for(int j=0;j<=n;j++)
                d[i][j] = 0;
        int maxnum = -1000000;    
        for(int i=1;i<=m;i++)
        {
            for(int j=0;j<=n;j++)
            {
                if(j-v[i]>=0)
                    d[i][j] = Max(d[i-1][j],d[i-1][j-v[i]]+v[i]*w[i]);
                else
                    d[i][j] = d[i-1][j];
                    
                if(d[i][j] > maxnum)
                    maxnum = d[i][j];
            }
        }
        cout<<maxnum<<endl;
    }
    return 0;
} 

 

以上是关于NYOJ 开心的小明的主要内容,如果未能解决你的问题,请参考以下文章

NYOJ 49 开心的小明(01背包问题)

nyoj 55 懒省事的小明

NYOJ 55 懒省事的小明(哈弗曼树)

nyoj 53-不高兴的小明 (遍历)

nyoj 55-懒省事的小明(priority_queue)

nyoj 52-无聊的小明 (模拟, SET)