AC

许诺 · 发布于 2025-06-18 · 浏览 377 回复 0
#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;

}

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复