2 条题解

  • 0
    @ 2026-4-8 18:35:53

    水篇题解,01背包板题。

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        freopen("problem.in", "r", stdin);
        freopen("problem.out", "w", stdout);
        int n, m;
        cin >> n >> m;
        int time[605], value[605];
        for (int i = 1; i <= m; i++) {
            cin >> time[i] >> value[i];
        }
        int dp[605][605] = {0};
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (j >= time[i]) {
                    dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - time[i]] + value[i]);
                } else {
                    dp[i][j] = dp[i - 1][j];
                }
            }
        }
        cout << dp[m][n] << endl;
        return 0;
    }
    

    信息

    ID
    235
    时间
    1000ms
    内存
    512MiB
    难度
    4
    标签
    递交数
    19
    已通过
    10
    上传者