6 条题解

  • 1
    @ 2025-5-18 20:12:52
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1000 + 10;
    int m , w[N] , c[N] , dp[1010] , n , s[N];
    int main(){
    	cin >> m >> n;
    	for(int i = 1;i <= n;i++)
    	    cin >> w[i] >> c[i] >> s[i];
    	for(int i = 1;i <= n;i++)
            for(int j = m;j >= w[i];j--) 
                for(int k = 1;k <= s[i];k++)
                {
                	if(k * w[i] > j)
                	    dp[j] = dp[j];
                	else
                	    dp[j] = max(dp[j] , dp[j - w[i] * k] + c[i] * k);
    			}
    	cout << dp[m];
    	return 0;
    }

    信息

    ID
    1734
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    191
    已通过
    75
    上传者