Codevs 1014 装箱问题

题目描述 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

代码:

#include<iostream>
#include<cstdio>
using namespace std;
int n,v,w[20000],f[20000];
int main()
{
    cin>>v>>n;
    for(int i=1;i<=n;i++)
      scanf("%d",&w[i]);
    for(int i=1;i<=v;i++)
      f[i]=i;
    for(int i=1;i<=n;i++)
    {
        for(int j=v;j>=w[i];j--)
          f[j]=min(f[j-w[i]],f[j]);
    }
    for(int i=1;i<=v;i++)
      printf("%d ",f[i]);
    //printf("%d",f[v]);
    return 0;
}

思路: 简单的01背包

时间: 2024-10-20 11:12:49

Codevs 1014 装箱问题的相关文章

CodeVS 1014 装箱问题(DP)

题目大意: http://codevs.cn/problem/1014/ 源码: #include <iostream> #include <cmath> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int v,n; int arr[50]; int main() { cin >> v >> n; int dp

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

【动态规划】【零一背包】CODEVS 1014 装箱问题 2001年NOIP全国联赛普及组

1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 int n,m,w[31],f[30001]; 5 int main() 6 { 7 scanf("%d%d",&m,&n); 8 for(int i=1;i<=n;i++) scanf("%d",&w[i]); 9 for(int i=1;i<=n;i++) 10 for(i

1014 装箱问题 CODE[VS]

1014 装箱问题 2001年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入描述 Input Description 一个整数v,表示箱子容量 一个整数n,表示有n个物品 接下来n个整数

codevs 3152 装箱问题3

装箱问题3 http://codevs.cn/problem/3152/ 题目描述 Description 设有n种物品,记作A1.A2.-.An,对应于每个Ai(1<=i<=n)都有一个重量Awi和价值Avi(重量和价值都为正整数).另外,对应于每个Ai,都有一件可代替它的"代用品"Bi,Bi的重量和价值分别为Bwi和Bvi. 本题的任务是:选择这n件物品或其代用品的一个子集装进背包,使总重量不超过给定重量TOT,同时使总价值VAL最高.装填的第I步,要么装入Ai,要么装

[Codevs] 1014 棋盘染色

1049 棋盘染色 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有一个5×5的棋盘,上面有一些格子被染成了黑色,其他的格子都是白色,你的任务的对棋盘一些格子进行染色,使得所有的黑色格子能连成一块,并且你染色的格子数目要最少.读入一个初始棋盘的状态,输出最少需要对多少个格子进行染色,才能使得所有的黑色格子都连成一块.(注:连接是指上下左右四个方向,如果两个黑色格子只共有一个点,那么不算连接) 输入描述 Input Descri

codevs 1464 装箱问题 2 x

题目描述 Description 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6.这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户.因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量.他们很需要有一个好的程序帮他们解决这个问题从而节省费用.现在这个程序由你来设计. 输入描述 Input Description 输入文件包括几行,每一行代表一个订单.每个订单里的一

DP基础总结

DP是一个不能更常用的算法了,这里也就对基础的五大类DP题型做个总结. 背包型 背包问题是很多教材上DP的引入题,它也确实是基础中的基础,总的来说背包型DP有01背包.部分背包.完全背包三种,其余的例如多重背包等都是衍生题目.直接看例题吧. 先看一道01背包. Codevs 1014装箱问题 这类题目只有两种状态,拿或不拿,所以叫01背包.状态转移方程还是比较好写的:f[i] = max{f[i], f[i-x]+x}.f[i]表示选到i的最大容积(箱内容积),最后用总的去减去f[v]就是ans

DP学习之装箱问题

CodeVS 1014 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. INPUT: V N 每个物品的体积 OUTPUT: 箱子剩余空间 *********************************************华丽丽的分割线**************************************************** 很