洛谷 P2430 严酷的训练 题解

题目链接

洛谷 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;
}
posted @ 2025-12-28 21:31  CodingJuRuo  阅读(30)  评论(0)    收藏  举报