P1049 装箱问题
题目入口:P1049 装箱问题
写在前面
使用模版【模版】背包问题汇总
01背包简化问题
重量即价值,故可省略val[]数组
核心同P2925 [USACO08DEC]干草出售Hay For Sale
AC代码
//01背包模版
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
#define MaxSize 20010 //注意最大物品数的修改
int wei[MaxSize], dp[MaxSize]; //物品重量 价值 最优答案
int main() {
int n, cap; //物品数量number 容量capacity
scanf("%d%d", &cap, &n);
for (int i = 1; i <= n; i++) scanf("%d", &wei[i]);
for (int i = 1; i <= n; i++)
for (int j = cap; j >= wei[i]; j--)
dp[j] = max(dp[j], dp[j-wei[i]]+wei[i]);
printf("%d\n", cap-dp[cap]);
return 0;
}