【题目描述】
有一个箱子容量为V(正整数,0≤v≤20000),同时有n个物品(0< n ≤30),每个物品有一个体积(正整数)。

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

【输入】
第一行是一个整数V,表示箱子容量。

第二行是一个整数n,表示物品数。

接下来n行,每行一个正整数(不超过10000),分别表示这n个物品的各自体积。

【输出】
一个整数,表示箱子剩余空间。

【输入样例】
24
6
8
3
12
7
9
7
【输出样例】
0

1、f[i][j] 表示前i件物品放入 体积为j 的背包中,是否可以刚好放满体积j
2、状态转移方程:f[i][j] = f[i - 1][j] || f[i - 1][j - v[i]]f[i - 1][j]     //不放第i件物品f[i - 1][j - v[i]] // 放第i件物品
3、f[i][j] 用一维表示
#include <bits/stdc++.h>
using namespace std;
const int MaxM = 20010;
int m, n;
const int MaxN = 50;
int v[MaxN];
bool f[MaxM];int main()
{scanf("%d%d", &m, &n);for(int i = 1; i <= n; ++i)scanf("%d", &v[i]);memset(f, false, sizeof f);f[0] = true;for(int i = 1; i <= n; ++i){for(int j = m; j >= 0; --j){if(j >= v[i])f[j] = f[j] || f[j - v[i]];}}int ans = m;for(int j = 1; j <= m; ++j){if(f[j]){ans = min(ans, m - j);}}printf("%d\n", ans);return 0;
}

一本通 1295:装箱问题(01背包)相关推荐

  1. 装箱问题(01背包模型)

    题意: 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数). 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入格式 第一行是一个整数 V,表示箱子容量. 第二 ...

  2. 洛谷 P1049 装箱问题(01背包)

    一道水题,但看到好久没有发博客了,再一看是一道noip普及组t4,就做了. 题目链接 https://www.luogu.org/problemnew/show/P1049 解题思路 一道裸的01背包 ...

  3. 背包问题(01背包,完全背包,多重背包(朴素算法二进制优化))

    写在前面:我是一只蒟蒻~~~ 今天我们要讲讲动态规划中~~最最最最最~~~~简单~~的背包问题 1. 首先,我们先介绍一下  01背包 大家先看一下这道01背包的问题   题目   有m件物品和一个容 ...

  4. 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包

    动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...

  5. 背包九讲 (蒟蒻版)之01背包

    hello,你们的loony上线啦.你们知道吗?我今天早上起来一看手机,600多人在CSDN上访问过我,当时我心情都要炸了(补充:高兴炸了),因为,这毕竟只是本蒟蒻的梦想嘛~ 好了不嘚瑟啦! 今天就来 ...

  6. 浅说——九讲背包之01背包

    所谓九讲,也就是: 0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包: [问题描述](经典) ...

  7. Codeforces Round #104 (Div. 2) E DP(01背包模型) +组和+除法取模求逆元

    题意: 规定只包含4或7的数为幸运数字,给定n个数的序列,求他的子序列,使得该子序列的长度为k并且满足该子序列中不存在相同的两个幸运数字.问一共寻在多少种可能.(只要该数的下标不同则认为是不同的序列) ...

  8. 最小邮票数(01背包)

    题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值.     如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可. 输入描述: 有多组数 ...

  9. NYOJ 860 又见01背包

    有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W  的物品,求所有挑选方案中物品价值总和的最大值. 1 <= n <=100 1 <= wi < ...

  10. 背包问题(多重背包+0-1背包)

    一:0-1背包问题 #include<iostream> #include<algorithm> #include<cstring> const int maxn= ...

最新文章

  1. opencv 解析yuv_OpenCV Mat格式存储YUV图像
  2. python知识:如何多窗口切换
  3. UBOOT手动设置环境变量
  4. 用python的matplotlib画标准正态曲线
  5. 修改Linux字体出现乱码
  6. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...
  7. leetcode450. 删除二叉搜索树中的节点(详解)
  8. 建立分析模型和设计模型
  9. 关于unity2019.3.11.f在烘焙光照贴图时闪退的问题
  10. Java 第五章 类的设计与包
  11. 应用chroot构建最小运行系统
  12. [复杂网络博弈] 第二章 演化博弈动力学基础
  13. 基于Unity开发的鼠标打飞碟游戏设计
  14. 手机怎么打开html.chm,chm格式文件怎么打开,华为手机chm阅读器哪个好
  15. element-ui tamplate slot-scope 模板插槽的使用
  16. [node]nvs使用的注意事项
  17. <UDP网络编程>——《计算机网络》
  18. Yapi idea插件使用
  19. 实现微信通知提醒的方法总结
  20. 欧拉道路 和 欧拉回路

热门文章

  1. Mac截图默认存储位置修改
  2. 中国天气网接口返回json格式分析及接口(XML 图片接口)说明
  3. 【牛客网】C/C++牛客网专项刷题(00)
  4. 【C语言初阶】初识C语言(上)
  5. 立体画板--Plot3D
  6. 面子值几个钱?人为什么而活
  7. 域名的命名规则有哪些?
  8. js去掉html中的注释
  9. 用户获取pppd拨号状态_Mac OS 9:拨号上网并设置Internet连接
  10. Android 自定义水波球清理内存的悬浮窗小工具