1 条题解

  • 0
    @ 2018-07-29 09:57:07

    #include<iostream>
    using namespace std;
    int n,pg,raun,p[151],r[151],c[151],s[151],f[101][101];
    int main()
    {
    cin>>n>>pg>>raun;
    for (int i=1;i<=n;i++){
    cin>>p[i]>>r[i]>>s[i]>>c[i];
    if (s[i]==0) s[i]=min(pg/p[i],raun/r[i]);
    }

    for (int i=1;i<=n;i++)
    for (int pi=pg;pi>=0;pi--)
    for (int ri=raun;ri>=0;ri--)
    for (int k=0;k<=s[i];k++)
    if (pi>=p[i]*k && ri>=r[i]*k)
    f[pi][ri]=max(f[pi][ri],f[pi-p[i]*k][ri-r[i]*k]+c[i]*k);
    cout<<f[pg][raun];
    }

  • 1

信息

难度
8
分类
(无)
标签
递交数
12
已通过
5
通过率
42%
上传者