求助
查看原帖
求助
676590
HenryQ2022楼主2024/8/17 12:09

#include <bits/stdc++.h>
using namespace std;

#define int long long
#define N 1010

int n, m, x; 
int a[N], b[N], c[N];

int dp[N][N];
signed main() {
    cin >> n >> m >> x;
    for(int i = 1;i <= n;i++) cin >> a[i];
    for(int i = 1;i <= n;i++) cin >> b[i];
    for(int i = 1;i <= n;i++) cin >> c[i];
    
    memset(dp, -1, sizeof(dp));
    dp[0][0] = 0;
    
    for(int i = 1;i <= n;i++) {
    	for(int j = m;j >= b[i];j--) {
    		for(int k = x;k >= c[i];k--) {
    			dp[j][k] = max(dp[j][k], dp[j - b[i]][k - c[i]] + a[i]);
			}
		}
	}
	
	int mx = -1;
	for(int i = 0;i <= m;i++) {
		for(int j = 0;j <= x;j++) {
			mx = max(mx, dp[i][j]);
		}
	}
	cout << mx << "\n";
    return 0;
}

样例过,0pt

2024/8/17 12:09
加载中...