zoukankan      html  css  js  c++  java
  • codevs 1014 装箱问题 2001年NOIP全国联赛普及组

    题目描述 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
    典型的dp
    一位数组描述是否可以剩余当前空间
     1 #include <cstdio>
     2 
     3 const int N=20007;
     4 
     5 bool f[N];
     6 
     7 
     8 int a[40];
     9 
    10 int main()
    11 {
    12     int v,n;
    13     scanf("%d%d",&v,&n);
    14     
    15     f[0]=1;
    16     
    17     for(int i=1;i<=n;i++)
    18     {
    19         scanf("%d",a+i);
    20         for(int j=v;j>=0;j--)
    21         {
    22             if(f[j])
    23             {
    24                 if(j+a[i]<=v)
    25                 {
    26                     f[j+a[i]]=1;
    27                 }
    28             }
    29         }
    30     }
    31     
    32     for(int i=v;i>=0;i--)
    33     {
    34         if(f[i])
    35         {
    36             printf("%d
    ",v-i);
    37             break;
    38         }
    39     }
    40     
    41     return 0;
    42 }
  • 相关阅读:
    Lua笔记4 语句
    Corps humain
    La Famille
    短语
    Lua笔记6 编译、执行与错误
    poser une question
    Photon——Exception Handling 异常处理
    Photon——Calling Operations 调用操作
    Photon——Licenses 许可证
    Photon——Firewall Settings 防火墙设置
  • 原文地址:https://www.cnblogs.com/sssy/p/6850489.html
Copyright © 2011-2022 走看看