AC

许诺  •  21小时前


#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {

int N, m;
cin >> N >> m;

vector<int> v(m), p(m);
for (int i = 0; i < m; ++i) {
    cin >> v[i] >> p[i];
}

vector<int> dp(N + 1, 0);

for (int i = 0; i < m; ++i) {
    int cost = v[i];
    int value = v[i] * p[i];
    for (int j = N; j >= cost; --j) {
        dp[j] = max(dp[j], dp[j - cost] + value);
    }
}

cout << dp[N] << endl;

return 0;

}


评论:

请先登录,才能进行评论