1 条题解

  • 1
    @ 2024-10-3 14:47:36

    #include<bits/stdc++.h>

    using namespace std;

    const int maxn=10005;

    int dp[maxn][maxn];

    int k[maxn],y[maxn];

    int main(){

    int n,m;
    
    cin>>m>>n;
    
    for(int i=1;i<=n;i++) cin>>k[i]>>y[i];
    
    for(int i=1;i<=n;i++){
    
    	for(int j=1;j<=m;j++){
      
    		if(k[i]>j){
        
    			dp[i][j]=dp[i-1][j];
          
    		} else {
      
    			dp[i][j]=max(dp[i-1][j],y[i]+dp[i-1][j-k[i]]);
        
    		}
      
    	}
    
    }
    
    cout<<dp[n][m];
    
    return 0;
    

    }

    信息

    ID
    1431
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    (无)
    递交数
    58
    已通过
    24
    上传者