题解 | #[NOIP2001]装箱问题#

[NOIP2001]装箱问题

http://www.nowcoder.com/practice/55100a6608ad4656849dbd1f16d044cb

背包看着就头疼

#include <algorithm>
#include <iostream>
#include <vector>

int main(int argc, char *argv[]) {
  int pack, objs;
  
  std::cin >> pack >> objs;
  
  std::vector<int> size(objs, 0);
  std::vector<int> dp(pack + 1, 0);
  
  for (int i = 0; i < objs; i++) {
    std::cin >> size[i];
  }
  
  for (int i = 0; i < objs; ++i) {
    for (int j = pack; j >= size[i]; --j) {
      dp[j] = std::max(dp[j], dp[j-size[i]]+size[i]);
    }
  }
  
  std::cout << pack - dp[pack] << std::endl;
  
  return 0;
}
全部评论

相关推荐

xxxxOxo:该催就催,想要你的不会因为催就挂,催了就挂的是因为本来就要挂你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务