大佬求助 70分
查看原帖
大佬求助 70分
1004888
Genius_physicist楼主2023/8/18 15:29
#include <bits/stdc++.h>
using namespace std;

int main() {
    int N, V;
    cin >> N >> V;
    
    vector<int> C(N+1), X(N+1), Y(N+1);
    for (int i = 1; i <= N; i++) {
        cin >> C[i] >> X[i] >> Y[i];
    }
    
    vector<vector<int>> dp(N+1, vector<int>(V+1, 0));
    
    for (int i = 1; i <= N; i++) {
        for (int j = 0; j <= V; j++) {
            if (j >= C[i]) {
                dp[i][j] = max(dp[i-1][j-C[i]] + Y[i], dp[i-1][j]);
            } else {
                dp[i][j] = dp[i-1][j];
            }
        }
    }
    
    if (dp[N][V] < 0) {
        cout << -1 << endl;
    } else {
        cout << dp[N][V] << endl;
    }
    
    return 0;
}
2023/8/18 15:29
加载中...