洛谷 P2430 严酷的训练 题解
题目链接
思路分析
0-1 背包板子,按题目意思求出实际重量即可。
代码呈现
#include<bits/stdc++.h>
using namespace std;
const int N=105,T=5010;
int a,b,m,n,t;
int k[N],p[N],q[N],dp[T];
int main(){
scanf("%d%d%d%d",&a,&b,&m,&n);
for (int i=1;i<=n;++i) scanf("%d",k+i);
for (int i=1;i<=m;++i) scanf("%d%d",p+i,q+i);
scanf("%d",&t);
for (int i=1;i<=m;++i){
for (int j=t;j>=b/a*k[p[i]];--j) dp[j]=max(dp[j],dp[j-b/a*k[p[i]]]+q[i]);
}
printf("%d",dp[t]);
return 0;
}

浙公网安备 33010602011771号