90分求救
查看原帖
90分求救
1070431
ywtank楼主2024/8/18 12:11
#include <bits/stdc++.h> 
using namespace std;
const int N=1010;
int dp[N][N],z[N],c[N],x[N];
int main(){
	int w,l,m,n,b,s;
	cin >> w >> l;
	b=l/w;
	cin >> m >> n;
	for(int i=1;i<=n;i++){
		cin >> z[i];
		z[i]*=b;
	}
	for(int i=1;i<=m;i++){
		int p,q;
		cin >> p >> c[i]; 
		x[i]=z[p];
	}
	cin >> s;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=s;j++){
			if(j-x[i]<0)dp[i][j]=dp[i-1][j];
			else dp[i][j]=max(dp[i-1][j],dp[i-1][j-x[i]]+c[i]);
		}
	}
	cout << dp[m][s];
	return 0;
}

希望大佬帮忙看看

2024/8/18 12:11
加载中...