难受啊,
查看原帖
难受啊,
524191
Man_CCNU楼主2023/3/17 09:10
#include<iostream>

using namespace std;

const int N = 5e2 + 10;

int f[N][N][N], cost_[N], be[N], fri[N], n, m, res;

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        cin >> cost_[i] >> fri[i] >> be[i];
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < N; j++) {
            if (j < cost_[i]) {
                f[i][j][0] = f[i - 1][j][0];
            }
            else {
                f[i][j][0] = max(f[i][j][0], f[i - 1][j - cost_[i]][0] + be[i]);
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < N; j++) {
            for (int k = 0; k < N; k++) {
                f[i][j][k] = f[i - 1][j][k];
                if (j >= cost_[i]) {
                    int tem = max(0, k - fri[i]);
                    f[i][j][k] = max(f[i][j][k], f[i - 1][j - cost_[i]][tem] + be[i]);
                }
            }
        }
    }
    for (int i = 1; i <= m; i++) {
        int c, fr;
        cin >> c >> fr;
        res = f[n][c][fr];
        cout << res << endl;
    }

    return 0;
}
2023/3/17 09:10
加载中...