1 条题解

  • 0
    @ 2025-3-30 17:28:51
    #include<bits/stdc++.h>
    using namespace std;
    
    int main() {
        int N, V;
        cin >> N >> V;
        vector<int> w(N + 1), v(N + 1);
        for (int i = 1; i <= N; i++) {
            cin >> w[i] >> v[i];
        }
        vector<int> dp(V + 1, 0);  // dp[j] 表示容量为 j 时的最大价值
        
        for (int i = 1; i <= N; i++) {
            for (int j = w[i]; j <= V; j++) {
                dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
            }
        }
        cout << dp[V];
        return 0;
    }
    
    

    信息

    ID
    118
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    147
    已通过
    48
    上传者