您的位置:首页 > 其它

南阳理工OJ_题目49 开心的小明

2014-05-10 18:57 288 查看
#include <iostream>
#include <cstring>

using namespace std;

int dp();

struct data
{
    int v;
    int p;
};

int n;
int m;
data a[30];
int d[30010];

int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        cin >> n >> m;
        for(int i = 1; i <= m; i++)
            cin >> a[i].v >> a[i].p;

        memset(d, 0, sizeof(d));
        cout << dp() << endl;
    }
}

int dp()
{
    for(int i = 1; i <= m; i++)
    {
        for(int j = n; j >= a[i].v; j--)
            d[j] = d[j] > (d[j-a[i].v] + a[i].v * a[i].p) ? d[j] : (d[j-a[i].v] + a[i].v * a[i].p);
    }
    return d
;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: