题解 | #装箱问题#

突然不理解这道题了。。写错写不出来。。

#include <stdio.h>

int main(int argc, char *argv[]) {
  //  dp[i] 表示i容量时所能装的最大物品体积
  int dp[20001] = {0};
  int object[30] = {0};
  
  int size, count;
  scanf("%d", &size);
  scanf("%d", &count);
  
  for (int i = 0; i < count; ++i) {
    scanf("%d", &object[i]);
  }
  
//   for (int i = 1; i <= size; ++i) {
//     for (int j = 0; j < count; ++j) {
//       if (object[j] <= i) {
//         dp[i] = dp[i - object[j]] + object[j] > dp[i] ? dp[i - object[j]] + object[j] : dp[i];
//       }
//     }
//   }
  
  for (int i = 0; i < count; ++i) {
    for (int j = size; j >= object[i]; --j) {
      dp[j] = dp[j - object[i]] + object[i] > dp[j] ? dp[j - object[i]] + object[i] : dp[j];
    }
  }
  
  printf("%d\n", size - dp[size]);
  
  return 0;
}
全部评论

相关推荐

强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务