P1049 装箱问题

Posted alex-leaves

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1049 装箱问题相关的知识,希望对你有一定的参考价值。

 

题目描述

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

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

输入输出格式

输入格式:

111 个整数,表示箱子容量

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

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

 

输出格式:

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

 

输入输出样例

输入样例#1: 复制
24
6
8
3
12
7
9
7
输出样例#1: 复制
0

说明

NOIp2001普及组 第4题

 

非常简单的题目,刷题解时发现bitset这个神奇的玩意,真心6666。

看一下某大佬的AC代码:

 

 #include<bits/stdc++.h>
using namespace std;
const int N=20505;
bitset<N> a;
int n,v;
int main()
 {
        scanf("%d%d",&v,&n);
        int x;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&x);
            a|=(a<<x);
            a[x-1]=1;
        }
        for(int i=v-1;i>=0;i--)
          if(a[i]){
              printf("%d",v-i-1);break;
          }
        return 0;
} 

以上是关于P1049 装箱问题的主要内容,如果未能解决你的问题,请参考以下文章

P1049 装箱问题

P1049 装箱问题

P1049 装箱问题

P1049 装箱问题

P1049装箱问题

P1049 装箱问题(01背包)