0分求助
查看原帖
0分求助
735763
_ChongYun_楼主2023/1/31 11:27
#include<bits/stdc++.h>
using namespace std;
int n,q;
int cost[1111],fr[1111],be[1111];
int dp[555][555],c[1111111],f[1111111];
void youhua(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
}
void yvchuli(){
	for(int i=0;i<=500;i++){
		for(int j=1;j<=501;j++){
			dp[i][j]=-1;
		}
	}
}

int main(){
	
	youhua();
	cin>>n>>q;
	yvchuli();
	for(int i=1;i<=n;i++){
		cin>>cost[i]>>fr[i]>>be[i];
		for(int j=500-cost[i];j>=0;j--){
			for(int k=501;k>=0;k--){
				if(dp[j][k]>=0){
					dp[j+cost[i]][min(501,k+fr[i])]=max(dp[j+cost[i]][min(501,k+fr[i])],dp[j][k]+be[i]);
				}
			}
		}
	}
	
	for(int i=0;i<=500;i++){
		for(int j=500;j>=0;j--){
			dp[i][j]=max(dp[i][j],dp[i][j-1]);
		}
	}
	
	for(int i=1;i<=q;i++){
		cin>>c[i]>>f[i];
		cout<<max(0,dp[c[i]][f[i]])<<endl;
	}
	return 0;
}
2023/1/31 11:27
加载中...