• 洛谷P1049: 装箱问题


    https://www.luogu.org/problemnew/show/P1049

    题目描述

    有一个箱子容量为VVV(正整数,0≤V≤200000 le V le 200000≤V≤20000),同时有nnn个物品(0<n≤300<n le 300<n≤30,每个物品有一个体积(正整数)。

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

    输入输出格式

    输入格式:

    111个整数,表示箱子容量

    111个整数,表示有nnn个物品

    接下来nnn行,分别表示这nnn个物品的各自体积

    输出格式:

    111个整数,表示箱子剩余空间。

    输入输出样例

    输入样例#1: 复制

    24
    6
    8
    3
    12
    7
    9
    7
    

    输出样例#1: 复制

    0
    

    说明

    NOIp2001普及组 第4题

    可以搜索,也可以用背包思想来做,把每个物品的价值当做体积,求能装下的物品的体积最大。

    #include<stdio.h>
    #define N 20020
    int dp[N];
    int max(int a,int b)
    {
        if(a>b)
            return a;
        return b;
    }
    int main()
    {
        int a,m,n,i,j;
        scanf("%d%d",&m,&n);
        for(i=0;i<n;i++)
        {
            scanf("%d",&a);
            for(j=m;j>=a;j--)
                dp[j]=max(dp[j],dp[j-a]+a);
        }
        printf("%d
    ",m-dp[m]);
       return 0;
    }
  • 相关阅读:
    虚拟机黑屏
    ngnix随笔三
    ngnix随笔二
    ngnix随笔一
    HTML(初级)笔记
    学习Java注解
    常用工具类与commons 类库
    SpringBoot缓存使用
    LeetCode:98.验证二叉搜索树
    剑指Offer:面试题07.重建二叉树
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10002992.html
Copyright © 2020-2023  润新知