1 条题解

  • 1
    @ 2024-10-3 14:45:22

    #include<bits/stdc++.h>

    using namespace std;

    const int maxn=10005;

    int dp[maxn][maxn],w[maxn],v[maxn],n,m;

    int main(){

    cin>>m>>n;
    
    for(int i=1;i<=n;i++) cin>>w[i]>>v[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],v[i]+dp[i][j-w[i]]);
      
    	}
    
    }
    
    cout<<"max="<<dp[n][m];
    
    return 0;
    

    }

    信息

    ID
    1432
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    (无)
    递交数
    49
    已通过
    23
    上传者