7 条题解

  • 1
    @ 2026-4-26 20:06:37
    #include <bits/stdc++.h>
    using namespace std;
    int n, m, w[1010], c[1010], s[1010], dp[6010];
    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] = max(dp[j], dp[j - w[i] * k] + c[i] * k);	
    			}
    			
    		}
    	}
    	cout << dp[m];
    	return 0;
    } 
    
    

    信息

    ID
    1734
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    327
    已通过
    107
    上传者