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个整数,分别表示这n 个物品的各自体积

输出描述 Output Description

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

样例输入 Sample Input

24

6

8

3

12

7

9

7

样例输出 Sample Output

0

#include<iostream>
#include<cstdio>
using namespace std;

bool f[20001];//f[i]箱子还剩i时的最优解
int a[31];
int v,n;

int main()
{
    f[0]=1;
    scanf("%d%d",&v,&n);
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n;++i)
    {
        for(int j=v;j>=0;--j)
        {
            if(f[j]&&j+a[i]<=v)//DP
            {
                f[j+a[i]]=1;//能装到的体积就打个1
            }
        }
    }
    for(int j=v;j>=0;--j)
    {
        if(f[j])
        {
            cout<<v-j<<endl;
            return 0;
        }
    }
}
时间: 2024-08-11 22:49:16

1014 装箱问题 CODE[VS]的相关文章

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 装箱问题

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

[NOIP复习]第二章:动态规划

一.背包问题 1.Wikioi 1014 装箱问题 题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入描述 Input Description 一个整数v,表示箱子容量 一个整数n,表示有n个物品 接下来n个整数,分别表示这n 个物品的各自体积 输出描述 Output Description 一个整数,表示箱子剩余

javaCore分析示例(转)

当两个或多个线程彼此形成循环依赖关系时,就出现了死锁.例如,如果线程 A 处于等待线程 B 的等待状态,而同时线程 B 处于等待线程 A 的等待状态,则出现了死锁.一旦形成此情况,线程 A 和线程 B 都不能有任何进展,因为这两个线程现在都无限期地挂起了.为什么会有人创建这种系统?当然,您并不会有意这么做,但由于存在大量线程和复杂事务,因此很容易出现这种情况. 本文将介绍如何使用 IBM WebSphere Application Server V6.1 的线程转储工具来对系统进行检查,以确定是

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

一种video视频兼容IE的模式

一:video.html代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <link rel="stylesheet" href="css/video-js.css" /> 7 <!--<script type="text/

ios错误码:NSError对象.code

1. URL Loading System Error Codes These values are returned as the error code property of an NSError object with the domain “NSURLErrorDomain”. enum { NSURLErrorUnknown = -1, NSURLErrorCancelled = -999, NSURLErrorBadURL = -1000, NSURLErrorTimedOut =