1 solutions

  • 0
    @ 2024-7-31 13:58:11
    #include<bits/stdc++.h>
    using namespace std;
    const int N=12010,M=2010;
    int f[M];
    int v[N],w[N];
    int main()
    {
        int n,m;
        cin>>n>>m;
        int cnt=0;
        for(int i=1;i<=n;i++)
        {
            int a,b,c;
            cin>>a>>b>>c;
            int t=1;
            while(t<=c)
            {
                v[cnt]=a*t;
                w[cnt++]=b*t;
                c-=t;
                t=t*2;
            }
            if(c)
            {
                v[cnt]=a*c;
                w[cnt++]=b*c;
            }
        }
        n=cnt;
        for(int i=0;i<=n;i++)
        {
            for(int j=m;j>=v[i];j--)
            {
                f[j]=max(f[j],f[j-v[i]]+w[i]);
            }
        }
        cout<<f[m];
        return 0;
    }
    
    • 1

    Information

    ID
    211
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    48
    Accepted
    9
    Uploaded By