#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[n];
}
南阳理工OJ_题目49 开心的小明
最新推荐文章于 2017-04-26 13:49:39 发布