2 条题解

  • 0
    @ 2026-8-21 11:00:12
    #include<bits/stdc++.h>
    using namespace std;
    int a[1000], b[1000],c=-1;//a物品的重量,b物品的价值
    int dp[1000][1000];
    int m,n;
    int main(){
    	cin>>m>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i]>>b[i];
    	} 
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(j>=a[i]){
    				dp[i][j]=max(dp[i-1][j],dp[i][j-a[i]]+b[i]);
    			}
    			else{
    				dp[i][j]=dp[i-1][j];
    			}
    		}
    	}
    	cout<<"max="<<dp[n][m];
    	return 0;			
    } 
    
    • 0
      @ 2026-2-4 10:43:15
      • 1

      信息

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