1014 装箱问题

叁歲伎倆 2022-06-18 09:58 316阅读 0赞

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

数据范围及提示 Data Size & Hint

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<iostream>
  4. #include <string.h>
  5. #include<queue>
  6. using namespace std;
  7. int a[110],v[110]={0},n,s,MIN=999999999;
  8. bool cmp(const int &x,const int &y)
  9. {
  10. return x > y;
  11. }
  12. void dfs(int x,int y,int sum)
  13. {
  14. int i;
  15. if (sum > s)
  16. return ;
  17. if (sum <= s)
  18. {
  19. MIN = min(s-sum,MIN);
  20. }
  21. if (x==n||sum>s)
  22. return ;
  23. for (i=y; i<n; i++)
  24. {
  25. if (!v[i])
  26. {
  27. v[i]=1;
  28. dfs(x+1,i,sum+a[i]);
  29. v[i]=0;
  30. }
  31. }
  32. }
  33. int main()
  34. {
  35. int i,j;
  36. cin>>s>>n;
  37. for (i=0; i<n; i++)
  38. {
  39. cin>>a[i];
  40. }
  41. dfs(0,0,0);
  42. cout<<MIN;
  43. return 0;
  44. }

发表评论

表情:
评论列表 (有 0 条评论,316人围观)

还没有评论,来说两句吧...

相关阅读

    相关 【PTA】装箱问题

    题目重述 假设有N项物品,大小分别为s1 、s2 、…、si 、…、sN ,其中si 为满足1≤si ≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N

    相关 动态规划——装箱问题

    有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩

    相关 1014 装箱问题

    题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任

    相关 1464 装箱问题 2

    题目描述 Description 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1\1, 2\2, 3\3, 4

    相关 Java 装箱问题

    问题描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。   要求n个物品中,任取若干个装入箱

    相关 P1049 装箱问题

    题目描述: 有一个箱子容量为VVV(正整数,0≤V≤200000 \\le V \\le 200000≤V≤20000),同时有nnn个物品(0<n≤300<n \\le