11 条题解

  • 1
    @ 2026-4-26 19:42:28
    #include <bits/stdc++.h>
    using namespace std;
    int n, m, w[1010], c[1010], dp[110][1010];
    int main(){
    	cin >> m >> n;
    	for(int i = 1 ; i <= n ; i++){
    		cin >> w[i] >> c[i];
    	}
    	for(int i = 1 ; i <= n ; i++){
    		for(int j = 1 ; j <= m ; j++){
    			if(w[i] > j) dp[i][j] = dp[i - 1][j];
    			else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + c[i]);
    		}
    	}
    	cout << dp[n][m];
    	return 0;
    } 
    
    

    信息

    ID
    678
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    564
    已通过
    195
    上传者