3 条题解

  • 1
    @ 2026-10-28 20:32:46
    
    
    #include<bits/stdc++.h>
    using namespace std;
    long long dp[101][1001];
    long long a[101],b[1001];
    int main(){
    	long long c,d;
    	cin >> c >> d;
    	for(int i = 1;i <= d;i++){
    		cin >> a[i] >> b[i];
    	}
    	for(int i = 1;i <= d;i++){
    		for(int j = 1;j <= c;j++){
    			if(j >= a[i]){
    				dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - a[i]] + b[i]);
    			}else{
    				dp[i][j] = dp[i - 1][j];
    			}
    		}
    	}
    	cout << dp[d][c];
    	return 0;
    }
    
    

    信息

    ID
    214
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    31
    已通过
    11
    上传者