• 装箱问题


    8785:装箱问题

       总时间限制: 

    1000ms
     
    内存限制: 
    65536kB
    描述

    有一个箱子容量为V(正整数,0<=v<=20000),同时有n个物品(0< n<n<=30),每个物品有一个体积(正整数)。< n<="" p="">

    要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。

    输入
    第一行是一个整数V,表示箱子容量。
    第二行是一个整数n,表示物品数。
    接下来n行,每行一个正整数(不超过10000),分别表示这n个物品的各自体积。
    输出
    一个整数,表示箱子剩余空间。
    样例输入
    24
    6
    8
    3
    12
    7
    9
    7
    样例输出
    0
    来源
    NOIP2001复赛 普及组 第四题
    【思路】是取若干个物品 不是每个物品取若干个;
    先01背包求f[V]不超过V体积能放物品体积的最大值
    再求V-f[V]'
    【代码】
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int v[50],f[21000];
    int main()
    {
        int V,n;
        scanf("%d%d",&V,&n);
        for(int i=1;i<=n;i++)
        scanf("%d",&v[i]);
        for(int i=1;i<=n;i++)
        {
            for(int k=V;k>=v[i];k--)
            {
                f[k]=max(f[k],f[k-v[i]]+v[i]);
            }
        }
        printf("%d",V-f[V]);
        return 0;
    }
  • 相关阅读:
    re模块
    正则表达式
    python-函数基础(*arge **kwargs)
    Python-类基础
    Python内置函数
    有些事情自己知道就好
    jquery和dom之间的转换
    Jquery中attr和prop的区别
    thinkphp一对多HAS_MANY
    thinkphp表单自动验证
  • 原文地址:https://www.cnblogs.com/zzyh/p/6751538.html
Copyright © 2020-2023  润新知