求助!WA#1#2#3#5#10#12 60分
查看原帖
求助!WA#1#2#3#5#10#12 60分
909957
LITFLYR楼主2024/5/1 09:22
#include<bits/stdc++.h>
using namespace std;
int n,m,C;
int x,y,d;
int v[100005],w[100005],cnt;
struct Jafferson{
	int a,b,c; 
}Bag[100005];
int dp[100005];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL),cout.tie(NULL);
	cin >> n >> m >> C;
	for(int i=1;i<=n;i++){
		cin >> x >> y >> d;
		for(int j=1;j<=d;j*=2){
			v[++cnt]=j*x,w[cnt]=j*y;
			d-=j;
		}
		if(d) v[++cnt]=d*x,w[cnt]=d*y;
	} 
	for(int i=1;i<=cnt;i++){
		for(int j=C;j>v[i];j--){
			dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
		}
	}
	for(int i=1;i<=m;i++){
		cin >> Bag[i].a >> Bag[i].b >> Bag[i].c;
	} 
	for(int i=1;i<=m;i++){
		for(int j=C;j>=0;j--){
			for(int k=0;k<=j;k++){
				dp[j]=max(dp[j],dp[j-k]+(Bag[i].a*k+Bag[i].b)*k+Bag[i].c);
			}
		}
	}
    cout << dp[C] << endl;
    return 0;
} 
2024/5/1 09:22
加载中...