#include<iostream>
using namespace std;
int m,n;
int wight[30];
int value[30];
int dp[30010];
int max(int a, int b)
{
return a > b ? a : b;
}
int main()
{
cin >> n >> m;
for (int i = 0; i < m; ++i)
cin >> value[i] >> wight[i];
for (int i = 0; i < m; ++i)
for (int j = n; j >= value[i]; --j)
dp[j] = max(dp[j], dp[j - value[i]] + value[i]*wight[i]);
cout << dp[n];
//while (1);
return 0;
}
洛谷—P1060开心的金明(0/1背包问题)
最新推荐文章于 2022-02-01 14:23:47 发布