2 条题解

  • 1
    @ 2022-6-12 10:28:50
    #include<bits/stdc++.h>
    using namespace std;
    int dp[31][20001],v[31]; 
    int main(){
    	int m,n,i,j;
    	cin>>m>>n;
    	for(i=1;i<=n;i++){
    		cin>>v[i];	
    	}
    	for(i=1;i<=n;i++){
    		for(j=m;j>=1;j--){
    			if(j>=v[i]){
    				dp[i][j] = max(dp[i-1][j],dp[i-1][j-v[i]]+v[i]);
    			}else{
    				dp[i][j] = dp[i-1][j];
    			}
    		}
    		
    	}
    	cout<<m-dp[n][m];
    	return 0;
    }
    
    • 0
      @ 2023-11-4 18:17:55
      #include <bits/stdc++.h>
      using namespace std;
      int f[20010],w[20010],t,n;
      int main()
      {
        cin>>t>>n;
        for(int i=1;i<=n;i++)
          cin>>w[i];
        for(int i=1;i<=n;i++)
          for(int j=t;j>=w[i];j--)
            f[j]=max(f[j],f[j-w[i]]+w[i]);
        cout<<t-f[t];
        return 0;
      }
      
      • 1

      信息

      ID
      50
      时间
      1000ms
      内存
      125MiB
      难度
      2
      标签
      递交数
      31
      已通过
      21
      上传者