现在的位置: 首页 > 综合 > 正文

tyvj1016 装箱问题

2018年04月28日 ⁄ 综合 ⁄ 共 275字 ⁄ 字号 评论关闭

   应该归结为 伪背包问题吧

    #include <iostream>  
    #include <cstring>  
    using namespace std;  
    int max(int x, int y)  
    {  
      return x>y?x:y;  
    }  
    int main()  
    {  
      int v,n;  
      cin >> v >> n;  
      int a[n];  
      int dp[v+1];  
      memset(dp, 0, sizeof(dp));  
      for(int i=0; i<n; i++)   
      {  
        cin>>a[i];  
        for(int j=v; j>=a[i]; j--)  
        {  
          dp[j] = max(dp[j], dp[j-a[i]]+a[i]);  
        }  
      }  
      cout << v-dp[v];  
    }  

抱歉!评论已关闭.