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

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

收起

输入

输入:一个整数v,表示箱子容量
一个整数n,表示有n个物品
接下来 n 个整数,分别表示这 n 个物品的各自体积

输出

输出:一个整数,表示箱子最小的剩余空间

输入样例

24
6
8
3
12
7
9
7

输出样例

0
#include<iostream>
#include<queue>
#include<algorithm>
#include<set>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<bitset>
#include<cstdio>
#include<cstring>
//---------------------------------Sexy operation--------------------------//#define cini(n) scanf("%d",&n)
#define cinl(n) scanf("%lld",&n)
#define cinc(n) scanf("%c",&n)
#define cins(s) scanf("%s",s)
#define coui(n) printf("%d",n)
#define couc(n) printf("%c",n)
#define coul(n) printf("%lld",n)
#define speed ios_base::sync_with_stdio(0)
#define file  freopen("input.txt","r",stdin);freopen("output.txt","w",stdout)
//-------------------------------Actual option------------------------------//#define Swap(a,b) a^=b^=a^=b
#define Max(a,b) a>b?a:b
#define Min(a,b) a<b?a:b
#define mem(n,x) memset(n,x,sizeof(n))
#define mp(a,b) make_pair(a,b)
//--------------------------------constant----------------------------------//#define INF  0x3f3f3f3f
#define maxn  100005
#define esp  1e-9
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
//------------------------------Dividing Line--------------------------------//
int v,n;
int a[maxn];
int dp[maxn];
int  main()
{cini(v),cini(n);for(int i=0; i<n; i++)cini(a[i]);for(int i=0; i<n; i++){for(int j=v;j>=a[i];j--){dp[j]=max(dp[j],dp[j-a[i]]+a[i]);}}cout<<v-dp[v]<<endl;
}

51NOD 2072 装箱问题 背包问题 01 背包 DP 动态规划相关推荐

  1. 动态规划之背包问题——01背包

    算法相关数据结构总结: 序号 数据结构 文章 1 动态规划 动态规划之背包问题--01背包 动态规划之背包问题--完全背包 动态规划之打家劫舍系列问题 动态规划之股票买卖系列问题 动态规划之子序列问题 ...

  2. 背包问题——01背包

    背包问题--01背包 01背包作为动态规划(dynamic programing)中最基础的问题,需要我们彻底理解其中的原理,为以后解决更难的动态规划问题打下良好的基础. 这里拟定一个01背包问题: ...

  3. C++ 背包问题——01背包

    由于编辑器原因,01背包文章搬家了,想看到更好的01背包问题题解,请点击链接: C++背包问题--01背包_小天狼星_布莱克的博客-CSDN博客

  4. 动态规划之背包问题---01背包---完全背包---多重背包

    本篇博客是基于Carl大佬的刷题笔记 (代码随想录) 进行总结的 另外加入了我自己的一些整理,特此记录,以防遗忘 几种在面试中常见的背包,其关系如下: 通过这个图,可以很清晰分清这几种常见背包之间的关 ...

  5. 动态规划之背包问题 01背包

    什么是01背包? 有n件物品和一个最多能背重量为w 的背包.第i件物品的重量是weight[i],得到的价值是value[i] .每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大. 首先, ...

  6. 背包问题——01背包/完全背包/多重背包

    背包问题是典型的动态规划问题,本文将对典型的背包问题进行总结. 0-1背包问题 有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品的体积是 vi,价值是 wi. 求解将哪些 ...

  7. 经典背包问题 01背包+完全背包+多重背包

    01 背包 有n 种不同的物品,每个物品有两个属性,size 体积,value 价值,现在给一个容量为 w 的背包,问最多可带走多少价值的物品. int f[w+1]; //f[x] 表示背包容量为x ...

  8. 饭卡 01背包 DP

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  9. L3-001. 凑零钱-PAT团体程序设计天梯赛GPLT(01背包,动态规划)

    韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债.韩梅梅手边有104枚来自各个星球的硬币,需要请你帮她盘算一下,是 ...

最新文章

  1. ASP.NET2.0+SQL Server2005构建多层应用 [转]
  2. 全云端万能小程序_万能门店全云端独立版微信小程序源码V4.0.10,全五端源码下载...
  3. NYOJ 716 River Crossing(动态规划)
  4. 更改IE浏览器默认的源文件编辑器
  5. 父页面与子ifream传值,父页面获取子页面document元素与方法
  6. 全面介绍Windows内存管理机制及C++内存分配实例(一):进程空间
  7. 单例模式的练习-如何正确构建
  8. formidable上传文件时出错EXDEV, rename.....
  9. 【原创】ObjectARX中的代理对象
  10. input表单的type属性详解,不同type不同属性之间区别
  11. java arraylist对象_Java中ArrayList的对象引用问题
  12. 从零教新手开始学做游戏辅助系列(一)
  13. 抖音前期定位养号的8点具体建议
  14. 移动端h5页面监听手机横屏
  15. 动画设计基础(三点一节)-3d max2014 裙摆(飘带插件)
  16. 高级驾驶辅助系统各子系统一览
  17. echarts 图例翻页+图例自定义样式
  18. Hive in、exists 和 left semi join
  19. 基于STM32的温度控制系统
  20. 参考文献标号字体_论文参考文献文字格式

热门文章

  1. Java基础复习-八大基本数据类型-内存模型-基本算法-网络编程
  2. 在浏览器中进行深度学习:TensorFlow.js (十二)异常检测算法
  3. python自动化测试——测试报告以附件形式发送邮件
  4. 批量设置 style
  5. 关于996,我想说的 - 人在高潮享受成就,人在低潮享受人生
  6. Postgres客户端编码问题
  7. SSL *** 安全解决方案
  8. 我的Android进阶之旅------gt;解决Jackson等第三方转换Json的开发包在开启混淆后转换的实体类数据都是null的bug...
  9. makefile:2: *** 遗漏分隔符 。 停止
  10. [Android]发布Sqlite数据库