WA,求助
查看原帖
WA,求助
759126
kkksc004楼主2023/1/31 11:22
#include<bits/stdc++.h>
using namespace std;
int dp[501][501],cst[501],be[501],fr[501],n,q,c,f;
void read(int &x){
    int fx=1;
    x=0;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-') fx=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    x=x*fx;
}
int main(){
	read(n);
	read(q);
	for(int i=1;i<=n;i++){
		read(cst[i]);
		read(fr[i]);
		read(be[i]);
	}
	for(int i=1;i<=n;i++){
		for(int j=500;j>=cst[i];j--){
			for(int k=500;k>=0;k--){
				if(k<=fr[i]){
					dp[j][k]=max(dp[j][k],dp[j-cst[i]][0]+be[i]); 
				}else if(dp[j-cst[i]][k-fr[i]]){
					dp[j][k]=max(dp[j][k],dp[j-cst[i]][k-fr[i]]+be[i]);
				}
			}
		}
	}
	while(q--){
		read(c);
		read(f);
		printf("%d\n",dp[c][f]);
	}
	return 0;
}
2023/1/31 11:22
加载中...