2 条题解

  • 1
    @ 2023-5-19 19:17:49

    👍


    #include<iostream> 
    using namespace std; 
    int n, v;
    int t[35];
    int dp[40000];
    int main()
    {
    	cin >> n >> v;
    	for(int i = 1;i <= n;i++)
    		cin >> t[i];
    	for(int i = 1;i <= n;i++)
    	{
    		for(int j = v;j >= t[i];j--)
    		{
    			dp[j] = max(dp[j],dp[j - t[i]] + t[i]);
    		}
    	}
    	cout << v - dp[v] << endl; 
    	return 0;
    }
    
    • 0
      #include <iostream>
      using namespace std;
      const int maxn=1e6+10;
      int w[maxn],dp[maxn];
      int main(){
      	int n,v;cin>>n>>v;
      	for(int i=1;i<=n;i++)cin>>w[i];
      	for(int i=1;i<=n;i++){
      		for(int j=v;j>=w[i];j--){
      			dp[j]=max(dp[j],dp[j-w[i]]+w[i]);
      		}
      	}
      	cout<<v-dp[v]<<endl;
      	return 0;
      }
      
      • 1

      信息

      ID
      652
      时间
      1000ms
      内存
      128MiB
      难度
      7
      标签
      递交数
      124
      已通过
      30
      上传者