装箱问题 (pack.pas/c/cpp)
来源:NOIP2001(普及组) 第四题
【问题描述】
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
【输入文件】
第一 行一个正整数V表示箱子的容量,第二行一个正整数N表示物品个数,接下来N行列出这N个物品各自的体积。
【输出文件】
单独一行,表示箱子最小的剩余空间。
【输入样例】
24
6
8
3
12
7
9
7
【输出样例】
0
#include
#include
int f[31][20001],c[31];
int main()
{
int v,n;
scanf("%d",&v);
scanf("%d",&n);
int i;
for(i=1;i<=n;i++)
{
scanf("%d",&c[i]);
}
memset(f,0,sizeof(f));
int j;
for (i=1;i<=n;i++)
{
for(j=v;j>=c[i];j--)
{
if(f[i-1][j]