WIKIOI-1014 装箱问题

简介:

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

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

一个整数v,表示箱子容量

一个整数n,表示有n个物品

接下来n个整数,分别表示这个物品的各自体积

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

24

6

8

3

12

7

9

7

0

 

 

思路:

经典的01背包问题,看代码吧

#include<stdio.h>
int w[20010];
int dp[20010],Weight;
int max(int a,int b)
{return a>b?a:b;}
int zeroOnePack(int n)//01背包
{
    for(int i=1; i<=n; i++)
    {
        for(int j=Weight; j>=w[i]; j--)
        {
            dp[j] = max(dp[j], w[i] + dp[j-w[i]]);
        }
    }
    return dp[Weight];
}
int main()
{
    int i,j,n;
    scanf("%d%d",&Weight,&n);
    for(i=1;i<=n;i++)
    scanf("%d",&w[i]);
    printf("%d\n",Weight-zeroOnePack(n));
    return 0;
} 


 

相关文章
|
算法
算法提高:计算几何基础 | 详解凸包问题
点集Q的凸包(convex hull)是指一个最小凸多边形,满足Q中的点或者在多边形边上,或者在其内
165 0
算法提高:计算几何基础 | 详解凸包问题
|
算法
563. 二叉树的坡度【我亦无他唯手熟尔】
563. 二叉树的坡度【我亦无他唯手熟尔】
50 0
|
存储 算法 调度
【喜闻乐见,包教包会】二分图最大匹配:匈牙利算法(洛谷P3386)
【喜闻乐见,包教包会】二分图最大匹配:匈牙利算法(洛谷P3386)
78 0
|
算法
二分图的匈牙利算法(用于解决最大匹配问题)--以杭电过山车题为例
二分图的匈牙利算法(用于解决最大匹配问题)--以杭电过山车题为例
110 0
洛谷P3194 [HNOI2008]水平可见直线(计算几何+单调栈)
洛谷P3194 [HNOI2008]水平可见直线(计算几何+单调栈)
105 0
洛谷P3194 [HNOI2008]水平可见直线(计算几何+单调栈)
LeetCode每日一题——790. 多米诺和托米诺平铺
有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 “L” 的托米诺形。两种形状都可以旋转。
123 0
LeetCode每日一题——790. 多米诺和托米诺平铺
|
人工智能 机器学习/深度学习
wikioi 1098 均分纸牌
wikioi 1098 均分纸牌 2002年NOIP全国联赛提高组题目描述 Description 有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张, 但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。
891 0