1014 装箱问题 2001年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入描述 Input Description 一个整数v,表示箱子容量 一个整数n,表示有n个物品 接下来n个整数,分别表示这n 个物品的各自体积 输出描述 Output Description 一个整数,表示箱子剩余空间。 样例输入 Sample Input 24 6 8 3 12 7 9 7 样例输出 Sample Output 0 数据范围及提示 Data Size & Hint #include<stdio.h> #include<iostream> using namespace std; int f[20000]; int main() { int v,n,t,j; scanf("%d",&v); scanf("%d",&n); while(n--) { scanf("%d",&t); for(j=v;j>=t;j--) f[j]=max(f[j-t]+t,f[j]); } printf("%d",v-f[v]); return 0; }这是一个背包问题,并且是其中比较简单的一种题型,可以结合算法书学习。