一本通 1295:装箱问题(01背包)
【题目描述】
有一个箱子容量为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背包)相关推荐
- 装箱问题(01背包模型)
题意: 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数). 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入格式 第一行是一个整数 V,表示箱子容量. 第二 ...
- 洛谷 P1049 装箱问题(01背包)
一道水题,但看到好久没有发博客了,再一看是一道noip普及组t4,就做了. 题目链接 https://www.luogu.org/problemnew/show/P1049 解题思路 一道裸的01背包 ...
- 背包问题(01背包,完全背包,多重背包(朴素算法二进制优化))
写在前面:我是一只蒟蒻~~~ 今天我们要讲讲动态规划中~~最最最最最~~~~简单~~的背包问题 1. 首先,我们先介绍一下 01背包 大家先看一下这道01背包的问题 题目 有m件物品和一个容 ...
- 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包
动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...
- 背包九讲 (蒟蒻版)之01背包
hello,你们的loony上线啦.你们知道吗?我今天早上起来一看手机,600多人在CSDN上访问过我,当时我心情都要炸了(补充:高兴炸了),因为,这毕竟只是本蒟蒻的梦想嘛~ 好了不嘚瑟啦! 今天就来 ...
- 浅说——九讲背包之01背包
所谓九讲,也就是: 0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包: [问题描述](经典) ...
- Codeforces Round #104 (Div. 2) E DP(01背包模型) +组和+除法取模求逆元
题意: 规定只包含4或7的数为幸运数字,给定n个数的序列,求他的子序列,使得该子序列的长度为k并且满足该子序列中不存在相同的两个幸运数字.问一共寻在多少种可能.(只要该数的下标不同则认为是不同的序列) ...
- 最小邮票数(01背包)
题目描述 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值. 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可. 输入描述: 有多组数 ...
- NYOJ 860 又见01背包
有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值. 1 <= n <=100 1 <= wi < ...
- 背包问题(多重背包+0-1背包)
一:0-1背包问题 #include<iostream> #include<algorithm> #include<cstring> const int maxn= ...
最新文章
- opencv 解析yuv_OpenCV Mat格式存储YUV图像
- python知识:如何多窗口切换
- UBOOT手动设置环境变量
- 用python的matplotlib画标准正态曲线
- 修改Linux字体出现乱码
- uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...
- leetcode450. 删除二叉搜索树中的节点(详解)
- 建立分析模型和设计模型
- 关于unity2019.3.11.f在烘焙光照贴图时闪退的问题
- Java 第五章 类的设计与包
- 应用chroot构建最小运行系统
- [复杂网络博弈] 第二章 演化博弈动力学基础
- 基于Unity开发的鼠标打飞碟游戏设计
- 手机怎么打开html.chm,chm格式文件怎么打开,华为手机chm阅读器哪个好
- element-ui tamplate slot-scope 模板插槽的使用
- [node]nvs使用的注意事项
- <UDP网络编程>——《计算机网络》
- Yapi idea插件使用
- 实现微信通知提醒的方法总结
- 欧拉道路 和 欧拉回路