1 solutions

  • 0
    @ 2026-3-30 17:03:35
    #include<bits/stdc++.h>
    using namespace std;
    const int M=6010;
    int f[M];
    int main()
    {
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++) //枚举每种物品 
        {
            int v,w,s;
            cin>>v>>w>>s;
            for(int j=m;j>=v;j--) //01背包体积从大到小 
            {
            	for(int k=0;k<=s&&k*v<=j;k++) //枚举第i种物品的选择的个数 
            	{
            		f[j]=max(f[j],f[j-v*k]+w*k);
    			}
    		}
        }
        cout<<f[m]<<endl;
        return 0;
    }
    
    • 1

    Information

    ID
    992
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    (None)
    # Submissions
    25
    Accepted
    10
    Uploaded By