AC日记——严酷的训练 洛谷 P2430

严酷的训练

思路:

  背包;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxn 5005
int n,m,bi[maxn],k,k1,k2,dp[maxn],ci[maxn],vi[maxn];
inline void in(int &now)
{
    char Cget=getchar();now=0;
    while(Cget>'9'||Cget<'0')Cget=getchar();
    while(Cget>='0'&&Cget<='9')
    {
        now=now*10+Cget-'0';
        Cget=getchar();
    }
}
int main()
{
    in(k1),in(k2),k=k2/k1,in(n),in(m);
    for(int i=1;i<=m;i++) in(bi[i]),bi[i]=bi[i]*k;
    for(int i=1;i<=n;i++) in(vi[i]),in(ci[i]),vi[i]=bi[vi[i]];
    in(m);
    for(int i=1;i<=n;i++)
    {
        for(int v=m;v>=vi[i];v--) dp[v]=max(dp[v-vi[i]]+ci[i],dp[v]);
    }
    cout<<dp[m];
    return 0;
}
原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/7043443.html