37 条题解

  • 0
    @ 2025-7-25 14:14:35
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main() {
        int N, m;
        cin >> N >> m;
        
        int v[25]; // 物品价格
        int w[25]; // 物品重要度
        int dp[30001] = {0}; // 动态规划数组,初始化为0
        
        for (int i = 0; i < m; i++) {
            cin >> v[i] >> w[i];
        }
        
        for (int i = 0; i < m; i++) {
            for (int j = N; j >= v[i]; j--) {
                dp[j] = max(dp[j], dp[j - v[i]] + v[i] * w[i]);
            }
        }
        
        cout << dp[N] << endl;
        
        return 0;
    }
    
    

    信息

    ID
    1
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    4607
    已通过
    1304
    上传者